Я монтирую жесткий диск USB, используемый для неустойчивого сменного резервного копирования через fstab запись:
# <file system> <mount point> <type> <options> <dump> <pass>
UUID=cd9f3fc4-f67f-42c4-8190-21d2766d2b65 /mnt/Bu-ehd2 ext4 rw,nosuid,noexec,nodev,noauto,nofail,relatime,user_xattr,acl,comment=x-gvfs-show 0 2
Размонтироваться, sudo umount /mnt/Bu-ehd2
работы, но пытающийся размонтироваться как постоянный (некорневой) пользователь:
$ umount /mnt/Bu-ehd2
umount: only root can unmount UUID=cd9f3fc4-f67f-42c4-8190-21d2766d2b65 from /mnt/Bu-ehd2
Почему это, так охвачен ответом @MariusGedminas' на AU, но не, как обойти ограничение использования на umount
без sudo
.
Добавление user
к монтированию опции не помогает.
Добавление users
действительно помогает, но размонтирование любым пользователем становится возможным даже после того, как монтирование было сделано на основе /etc/fstab
запись. Возможное, но плохое решение.
Добавление uid=1000,owner
повреждает процесс монтирования в целом с:
Ошибка, монтирующая системное управляемое устройство/dev/sdc1:
Командная строка 'монтируется "/mnt/Bu-ehd2"' вышедший с ненулевым статусом выхода 32: смонтируйтесь: неправильный тип фс, плохая опция, плохой суперблок на/dev/sdc1...
Я проверил:
$ df -l | grep Bu-ehd2
/dev/sdc1 192162396 60744 182317284 1% /mnt/Bu-ehd2
$ ls -lAsF /dev/disk/by-uuid | grep sdc1
0 lrwxrwxrwx 1 root root 10 Mar 29 11:24 cd9f3fc4-f67f-42c4-8190-21d2766d2b65
-> ../../sdc1
$ stat /mnt/Bu-ehd2 | head -4
File: ‘/mnt/Bu-ehd2’
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 821h/2081d Inode: 2 Links: 3
Access: (0770/drwxrwx---) Uid: ( 1000/someuser) Gid: ( 0/ root)
$ stat /dev/sdc1 | head -4
File: ‘/dev/sdc1’
Size: 0 Blocks: 0 IO Block: 4096 block special file
Device: 5h/5d Inode: 176539 Links: 1 Device type: 8,21
Access: (0660/brw-rw----) Uid: ( 0/ root) Gid: ( 6/ disk)
$ blkid | grep Bu-ehd2 # yields nothing on /dev/sdc1 when actually
$ #+ mounted on `/mnt/Bu-ehd2`
Q: Действительно ли unmouting как обычный пользователь, невозможный вследствие того, что смонтированное устройство принадлежит корню? Если так, как я делаю устройство umountable someuser
только путем издания cmd umount /dev/sdc1
? Идеально это было бы путем создания someuser
владелец его собственного внешнего usb устройство жесткого диска.
Примечание: Я предпочитаю не обращаться к sudo visudo
чтобы записать, что sudo-исключение управляет для каждого различного пользователя, для umount
. Это все еще вызвало бы каждый someuser
вводить sudo umount /mnt/Bu-ehd2
вместо просто umount /dev/sdc1
так или иначе.
Если root
, пользователь не может umount
любая файловая система смонтирована некоторым другим пользователем.
Если Вы использовали user
опция в mount
(/etc/fstab
), можно проверить вывод mount
команда, Вы будете видеть user=
показ пользователя, который смонтировал файловую систему. Только тот пользователь (и root
) может использовать umount
размонтировать файловую систему.
Существуют hacky способы сделать размонтирование как другого пользователя, но я не думаю, что существует любой прямой umount
путь.
Вот функция (на основе идеи OP), который будет работать umount
или gvfs-mount
на основе EUID. Это могло быть вставлено /etc/bash.bashrc
так, чтобы это было доступно на интерактивных оболочках всего пользователя:
unmount () {
if [[ "$#" -eq 1 ]]; then
{ [[ "$(id -u)" -eq 0 || "$1" =~ ^-.* ]] && "$(command -v umount)" "$1" || gvfs-mount -u "$1" ;}
else
printf "Usage: unmount [option -h [|-V]|mount-point|device-path]\n"
fi
}
Можно использовать udisksctl
для размонтирования без полномочий пользователя root:
udisksctl unmount --block-device /dev/sdc1
Используйте udisksctl mount/unmount -b /dev/sdX
. Чтобы использовать mount или umount без привилегий root, вам нужно отредактировать файл /etc/sudoers
с помощью visudo и добавить строки:
username ALL=(ALL) NOPASSWD: /bin/mount, /bin/umount
Затем перезагрузитесь.