Как мне записать файлы на 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-накопитель, на который вы хотите скопировать, и выберите "Открыть как корневой". Введите пароль. Затем вы можете скопировать удалить, перетащить и отпустить. Все хорошо