SOLUTION 1: newgrp
Un moyen simple de traiter votre cas d'utilisation serait d'utiliser :NOPASSWD
en combinaison avec un groupe et un mot de passe de groupe:
Ajoutez une ligne aux sudoers:
%rudo ALL=(ALL:ALL) NOPASSWD:ALL
Créez un groupe protégé par mot de passe:
groupadd rudo
gpasswd rudo # Enter passwd
Maintenant, lorsque vous vous connectez en tant qu'utilisateur non privilégié (en supposant que vous n'êtes pas déjà dans le rudo
groupe), connectez-vous au rudo
groupe, auquel cas vous serez invité à entrer le mot de passe.
login user
newgrp rudo
Vous pouvez maintenant exécuter sans sudo
mot de passe, tant que vous restez connecté au groupe.
SOLUTION 2: runaspw
Un meilleur moyen, peut-être plus sûr, de faire ces utilisations runaspw
. runaspw
est associée à l' runas_default
option de sorte que vous devez ajouter cette option aussi.
En supposant que vous disposez déjà de l' %sudo
entrée de groupe par défaut :
%sudo ALL=(ALL:ALL) ALL
ajoutez ces lignes au fichier sudoers:
Defaults:%sudo runas_default=sudo
Defaults:%sudo runaspw
Ajoutez maintenant un nouvel sudo
utilisateur avec un mot de passe:
useradd sudo -d /nonexistent -s /usr/sbin/nologin -MNr
passwd sudo
Désormais, les utilisateurs du groupe sudo seront invités à saisir le mot de passe de l'utilisateur sudo, mais seuls les utilisateurs du groupe sudo pourront le faire (contrairement à la solution de groupe ci-dessus, où n'importe qui dans le groupe ou avec le groupe passwd pourrait sudo).
Un problème mineur est que l'utilisateur runas par défaut est maintenant sudo
donc pour sudo en tant que root, vous devez spécifier explicitement root:
sudo -u root <cmd>
Mais assez simple pour définir une commande alias ( alias sudo='sudo -u root'
) ou sudo indirecte.