Как мне записать файлы на USB без рута?

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

я использую pmount подключить внешние USB-накопители. Так делает pmount /dev/sdb1 крепится к /media/usb0 потому что у меня есть фф. линия в /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 ответов

Решение

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

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

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

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

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

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

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

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

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

Использование sudo и изменить разрешения с chmod команда.

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

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

Если ваша файловая система 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

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

Другие вопросы по тегам