Je monte un disque dur USB utilisé pour la sauvegarde intermittente des plugins via l'entrée 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
Pour démonter, Sudo umount /mnt/Bu-ehd2
fonctionne, mais en essayant de démonter en tant qu'utilisateur normal (non root):
$ umount /mnt/Bu-ehd2
umount: only root can unmount UUID=cd9f3fc4-f67f-42c4-8190-21d2766d2b65 from /mnt/Bu-ehd2
La raison pour laquelle il en est ainsi est couverte par @MariusGedminas ' réponse sur AU, mais pas comment contourner la restriction d'utilisation sur umount
sans Sudo
.
L'ajout de user
aux options de montage n'aide pas.
L'ajout de users
aide mais le démontage par n'importe quel utilisateur devient possible même après que le montage a été effectué sur la base d'un /etc/fstab
entrée. Une solution possible mais mauvaise.
Ajouter uid=1000,owner
interrompt le processus de montage avec:
Erreur lors du montage du périphérique géré par le système/dev/sdc1:
La ligne de commande `mount"/mnt/Bu-ehd2 "'est sortie avec un état de sortie non nul 32: mount: mauvais type fs, mauvaise option, mauvais superbloc sur/dev/sdc1, ...
J'ai vérifié:
$ 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: Le démoutage en tant qu'utilisateur normal est-il impossible en raison du fait que le périphérique monté appartient à root? Si oui, comment puis-je rendre le périphérique démontable par someuser
simplement en émettant cmd umount /dev/sdc1
? Idéalement, ce serait en faisant someuser
le propriétaire de son propre périphérique de disque dur USB externe.
Remarque: Je préfère ne pas recourir à Sudo visudo
afin d'écrire une règle d'exception Sudo pour chaque utilisateur différent, pour umount
. Il forcerait toujours chaque someuser
à taper Sudo umount /mnt/Bu-ehd2
au lieu de simplement umount /dev/sdc1
en tous cas.
À moins que root
, un utilisateur ne puisse umount
aucun système de fichiers monté par un autre utilisateur.
Si vous avez utilisé l'option user
dans mount
(/etc/fstab
), vous pouvez vérifier la sortie de la commande mount
, vous verrez le user=
montrant l'utilisateur qui a monté le système de fichiers. Seul cet utilisateur (et root
) peut utiliser umount
pour démonter le système de fichiers.
Il existe des moyens hacky de faire le démontage en tant qu'utilisateur différent, mais je ne pense pas qu'il existe un moyen direct umount
.
Voici une fonction (basée sur l'idée d'OP) qui exécutera umount
ou gvfs-mount
basé sur l'EUID. Cela pourrait être mis dans /etc/bash.bashrc
pour qu'il soit disponible sur tous les shells interactifs de l'utilisateur:
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
}
Vous pouvez utiliser udisksctl
pour démonter sans privilèges root:
udisksctl unmount --block-device /dev/sdc1