Як я можу автоматично встановити дозволи на запис на встановлення 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 лише для ясності, тому ви не бачите більше власників «root», ніж обов'язково.


@ Відповідь Тома (запис / тощо / 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потрібен -метрія є останнім записом? Що робить managed=0 0 0запис, який наразі останній?
Йонас

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

2
Дякую. Але мені довелося це змінити, щоб змусити його працювати: sudo mount -o umask=0,uid=nobody /dev/something /mnt/somewhereВін працює лише без встановлення параметра gid.
Nippey

2

Додайте запис до / etc / fstab. Ось запис, який я додав лише кілька годин тому для мого USB-накопичувача Seagate:

UUID = 4ACC734ECC733375 / media / Linux ext3 помилки = перезапис-ро, за замовчуванням, користувачі, час, nodiratime 0 0

Ключовим тут є запис "користувачів", який дозволяє користувачам монтувати та демонтувати накопичувач.

Редагувати: це працює для конкретних накопичувачів - я не знаю, чи можна його ввімкнути для всіх дисків з одним записом.


Якщо користувач змонтує диск, чи всі інші користувачі також отримають 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.