Как я могу автоматически установить права на запись при монтировании USB-накопителя в Linux?


18

Когда я подключаю внешний USB-накопитель в Linux (CentOs4), разрешения по умолчанию устанавливаются только для чтения. Поскольку на компьютере есть несколько пользователей, которым необходимо использовать внешний диск, я хочу, чтобы у всех было rwразрешение на весь диск. Я также хочу, чтобы они могли смонтировать диск, если компьютер был случайно выключен. Они могут использовать sudo mountдля монтирования диска, но это даст им только разрешение на чтение, и я, очевидно, не хочу разрешать sudo chmod.

Есть ли настройка по умолчанию, которую я могу изменить, чтобы каждый новый внешний USB-диск автоматически получал rwразрешения?

Ответы:


17

Чтобы разрешить всем права доступа rw, ключом является опция umask = 0 для монтирования команды.

sudo mount -o umask=0,uid=nobody,gid=nobody /dev/something /mnt/somewhere

umask = 0 достаточно, uid и gid просто для ясности, поэтому вы не видите больше «корневых» владельцев, чем обязательно.


@ Ответ Тома (запись в / etc / fstab) позволит вам пропустить, sudoи если вы напишите umask = 0 в качестве дополнительной опции, вы получите лучшее из обоих миров:

Имея это в / etc / fstab:

/dev/something /mnt/somewhere auto users,noatime,umask=0 0 0

позволяет просто запустить

mount /dev/something

и каждый имеет доступ ко всем файлам.


Вот техническое примечание, если вы хотите узнать подробности:

Как man mountговорится, umask = 0 гарантирует, что никакие дополнительные правила не будут применяться к режиму доступа к файлам. Для файловых систем FAT (которые наиболее широко используются на USB-дисках) режим хранения не сохраняется. Но у вашего текущего процесса есть какое-то установленное значение umask, вы можете увидеть его, если работаете только umaskв терминале. mountиспользует это по умолчанию и удаляет режим доступа вашего значения umask из всех файлов на смонтированном диске. Наиболее широко используемыми значениями umask являются (восьмеричные) 022 - нет записи группы и другой записи, и 027 - нет записи группы, нет другого доступа.


Я получаю ошибку с «плохой вариант», если я добавляю umask=0 0 0 запись в fstab. umaskДолжен ли -entry быть последней записью? Что делает managed=0 0 0запись, которая в данный момент последняя?
Джонас

1
FWIW, опция umask - это опция только для VFAT, т. Е. Решение помогает, если на USB-накопителе используется файловая система VFAT (в моем случае это не так).
Томислав Накич-Альфиревич

2
Спасибо. Но мне пришлось изменить его, чтобы он работал: sudo mount -o umask=0,uid=nobody /dev/something /mnt/somewhereон работает только без установки параметра gid.
Ниппи

2

Добавьте запись в / etc / fstab. Вот запись, которую я добавил всего несколько часов назад для моего USB-накопителя Seagate:

UUID = 4ACC734ECC733375 / media / Linux ext3 ошибки = remount-ro, значения по умолчанию, пользователи, noatime, nodiratime 0 0

Ключевым моментом здесь является запись «users», которая позволяет пользователям подключать и отключать диск.

Изменить: это работает для определенных дисков - я не знаю, можно ли его включить для всех дисков с одной записью.


Если пользователь установит диск, все остальные пользователи также получат rwразрешение?
Джонас

1

Тип mount . Это даст текущее место, где он находится. Вот мой вывод.

rick@rick-Main ~ $ mount
/dev/sda4 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
none on /sys/fs/pstore type pstore (rw)
/dev/sda6 on /media/DATA1 type vfat (rw,uid=1000,utf8,umask=077)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=rick)
/dev/sdf1 on /media/usb0 type vfat (rw,noexec,nodev,sync,noatime,nodiratime)

Последний - мой usb-накопитель, автоматически устанавливаемый Linux Mint.

Сейчас типа

sudo umount /dev/sdf1

это размонтирует диск

Теперь перемонтируйте правильно.

sudo mount -t vfat /dev/sdf1 /media/usb0 -o rw,users,umask=0
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.