3 votes

Comment faire pour que Nautilus utilise "sudo mount" au lieu de "mount" ?

Grâce à de nouveaux "correctifs de sécurité" dans mount ou mount.cifs (je ne sais plus lequel des deux), il n'est plus possible pour les utilisateurs normaux de monter quoi que ce soit, même s'ils sont explicitement autorisés à le faire en utilisant la commande user , users ou owner drapeaux. Pour cette raison, j'ai modifié ma configuration sudo pour permettre à mon utilisateur d'exécuter les commandes de montage spécifiques pour mes partages réseau sans mot de passe. Ensuite, j'ai créé un script sous la rubrique $HOME/bin appelé mount qui contient :

sudo /usr/bin/mount "$*"

Je peux donc maintenant utiliser mount comme avant, sans avoir à taper de mot de passe. Le problème est que je ne peux pas monter mes partages réseau en utilisant Nautilus, qui est bien plus pratique. J'utilise le drapeau noauto dans fstab car sinon le montage aura lieu avant que j'aie établi une connexion réseau sans fil et échouera immédiatement.

Les partages apparaissent dans Nautilus sous forme de dossiers grisés, et lorsque je clique sur le dossier, Nautilus tente de monter le partage en utilisant une commande comme celle-ci (je pense) :

/usr/bin/mount "/media/My Network Share"

Ce qui échoue, car il n'utilise pas sudo . J'ai essayé de le faire :

PATH="$HOME/bin:$PATH" nautilus

Mais l'erreur se produit toujours, vraisemblablement parce que Nautilus utilise le chemin d'accès absolu à mount .

Ma question est donc la suivante : existe-t-il un moyen de faire en sorte que Nautilus utilise sudo /usr/bin/mount ou même simplement mount sans le chemin absolu ?


Mon dernier recours consiste essentiellement à déplacer el mount quelque part et le remplacer par un bash script. Le bash script vérifierait quel utilisateur l'exécute, et si c'est mon utilisateur, il ajouterait sudo en face de la commande. Sinon, il appellerait l'exécutable de montage normalement. J'espère éviter de prendre des mesures aussi radicales, car je pourrais facilement détruire mon système sans pouvoir le réparer.

1voto

fquinner Points 161

Vous pouvez faire en sorte que les binaires linux soient exécutables avec les droits de root en définissant l'attribut setuid sur l'exécutable que vous devez appeler. Vous pouvez également vouloir créer un groupe qui n'a accès qu'aux choses de montage (sauf si c'est une installation unique, alors vous pouvez simplement utiliser votre groupe d'utilisateurs). Donc quelque chose comme ce qui suit dans un Shell de root :

# groupadd mounters
# usermod -a -G mounters yourusername
# chgrp mounters /bin/mount
# chmod g+s /bin/mount

Cela crée donc un groupe appelé "mounters", ajoute votre utilisateur à ce groupe, change le groupe sur /bin/mount en "mounters", puis définit l'attribut setuid juste pour ce groupe dans /bin/mount. Si vous exécutez ensuite ce binaire, vous devriez effectivement l'exécuter en tant que root.

Vérifiez http://en.wikipedia.org/wiki/Setuid pour plus d'informations.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X