SOLUTION 1: newgrp
Un moyen simple de traiter votre cas d'utilisation serait d'utiliser :NOPASSWDen 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 rudogroupe), connectez-vous au rudogroupe, auquel cas vous serez invité à entrer le mot de passe.
login user
newgrp rudo
Vous pouvez maintenant exécuter sans sudomot 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. runaspwest associée à l' runas_defaultoption de sorte que vous devez ajouter cette option aussi.
En supposant que vous disposez déjà de l' %sudoentré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 sudoutilisateur 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 sudodonc 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.