9

У меня есть 4 ГБ флешка, которую я разделил с помощью sudo cfdisk /dev/sdb и отформатировал с помощью sudo mkfs /dev/sdb1 . В настоящее время он установлен на ID 83 System Linux когда я запускаю sudo fdisk -l на моем Debian Squeeze.

Я использую pmount для подключения внешних USB-накопителей. Таким образом, pmount /dev/sdb1 монтирует его в /media/usb0 потому что у меня есть ff. строка в /etc/fstab:

/dev/sdb1    /media/usb0    auto    rw,user,noauto    0    0

После выполнения команды pmount , USB монтируется в /media/usb0 - выполнение ls -l /media/usb0 дает мне:

drwx------ 2 root root 16384 Mar   2 20:08 lost+found

Поэтому я занимаюсь своими делами и пытаюсь скопировать файл в /media/usb0 но я получаю ошибку ниже:

$ cp ~/foo.bar /media/usb0
cp: cannot create regular file `/media/usb0/foo.bar': Permission denied

Но когда я запускаю ту же команду cp с помощью sudo , я могу скопировать файл.

Почему это происходит? Я пробовал другие USB-накопители, которые у меня есть, и я могу писать на них без этой ошибки. Было ли что-то не так с тем, как я отформатировал или переделил флешку?

5 ответов5

7

Вы отформатировали раздел sdb1, используя файловую систему ext* (ext2, ext3 или ext4 ; я не могу вспомнить значение по умолчанию). Это файловая система по умолчанию в системах Linux, которая использует права доступа к файлам Unix, чтобы определить, кто может изменять файлы или каталоги. Новые файловые системы всегда начинаются с корня (в данном случае /media/usb0 ), принадлежащего root:root , и обычно с разрешениями, разрешающими изменение только владельцу.

Чтобы убедиться в этом, смонтируйте файловую систему, затем запустите ls -ld /media/usb0 чтобы увидеть текущее владение /perms. Мое предположение:

drwx------ 2 root root 16384 Mar   2 20:08 /media/usb0

Простым решением было бы: а) chown смонтированную файловую систему к вашей собственной учетной записи Linux или б) дать всем право на запись с помощью chmod.

Однако, в конце концов, это не будет хорошим решением, так как созданные файлы будут принадлежать вашему UID, а не имени пользователя; это быстро приведет к несоответствию учетной записи, когда USB-накопитель подключен к другой системе. Предполагая, что вы можете подключить его вообще, то есть - Windows не поддерживает ext3 без дополнительных хитростей, поэтому NTFS (mkfs.ntfs) или FAT32 (mkfs.vfat) будет гораздо лучшим выбором для файловой системы.

4

Это происходит в более поздних системах Debian (например, jessie), а также с некоторыми USB-накопителями в формате fat32 или ext3,4. Вам нужно удалить (или закомментировать) следующую строку из вашего /etc/fstab:

/dev/sdb1    /media/usb0    auto    rw,user,noauto    0    0

После этого ваш USB-накопитель будет подключен автоматически с разрешения вашей учетной записи обычного пользователя, а не root. Смотрите подробную информацию на форумах Debian по этой ссылке.

После этого ваш USB-накопитель будет монтироваться без проблем с вашим правом записи пользователя :)

2

Используйте sudo и измените разрешения с помощью команды chmod .

Посмотрите мой ответ в этом вопросе, чтобы увидеть, как использовать chmod:

Я предлагаю вам использовать chmod 777 чтобы разрешить все (при использовании ls -l он покажет drwxrwxrwx).

0

Перейдите на носитель файловой системы через графический интерфейс. Щелкните правой кнопкой мыши на USB-накопителе, на который хотите скопировать, и выберите «Открыть как корневой». Введите пароль. Затем вы можете скопировать удалить, перетащить и отпустить. Все хорошо

0

Если ваша файловая система FAT16 или FAT32, вы должны использовать эту команду:

sudo mount -t vfat /dev/sdb1 /media/usb0 -o uid=1000,gid=1000,utf8,dmask=027,fmask=137

Для получения дополнительной информации перейдите по ссылке https://help.ubuntu.com/community/Mount/USB#Mount_the_Drive

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .