Autoriser les utilisateurs d'un certain groupe à exécuter une commande sans sudo

11

Je sais comment modifier / etc / sudoers afin de pouvoir exécuter une commande en tant que sudo sans avoir à entrer mon mot de passe, mais existe-t-il un moyen de permettre à un programme d'être exécuté complètement sans sudo, par tous les utilisateurs d'un groupe. (Les programmes que je veux exécuter sont "mount" et "umount").

w4etwetewtwet
la source
Quel est votre OS? Essayez-vous de monter une partition NTFS, une partition EXT ou un lecteur optique?
nate

Réponses:

13

Supposons que je veuille ajouter un groupe d'utilisateurs autorisés à s'exécuter mountet umountsans mot de passe. Je veux donc d'abord ajouter un groupe appelé "anyname"

sudo groupadd anyname

Ensuite, nous devons modifier le /etc/groupet ajouter les utilisateurs

anyname:x:407:

sera présent, ajoutez donc les utilisateurs auxquels vous souhaitez ajouter les utilisateurs séparés par des virgules.

anyname:x:407:user1,user2,...

Nous devons maintenant configurer sudo pour permettre aux membres du groupe "anyname" d'appeler réellement les commandes mountet umount.

Vous avez juste besoin d'ajouter les lignes suivantes à / etc / sudoers

%anyname ALL=NOPASSWD: /sbin/mount, /sbin/umount

Maintenant, sudo mountne demandera pas de mot de passe, mais comme il est difficile de taper sudo tout le temps, nous pouvons l'éviter en dong ce qui suit:

Je peux créer le script suivant appelé "/ usr / bin / mount" (et un script similaire pour umount)

#! /bin/sh
sudo /sbin/mount $*

Pour rendre cela un peu plus sûr, nous pourrions vouloir changer la propriété de ces scripts au groupe "anyname".

chgrp anyname /usr/bin/mount /usr/bin/umount

puis les rendre exécutables uniquement pour le groupe "anyname"

chmod g+x /usr/bin/mount  /usr/bin/umount

EDIT : Selon le système d'exploitation que vous utilisez, veuillez vérifier où se trouvent les commandes mount et umount. Il peut être dans / bin / au lieu de /sbin, vous devrez peut-être apporter les modifications nécessaires

IMPORTANT : BTW n'exécute pas le script sur les systèmes basés sur Arch où tous les dossiers bin sont liés par des liens symboliques entre eux.

Stormvirux
la source
1
Merci. J'ai en fait implémenté en utilisant un .bashrc global, qui contient une fonction mount qui ressemble à ceci: mount {sudo mount $ *}
w4etwetewtwet