SOLUZIONE 1: newgrp
Un modo semplice per affrontare il tuo caso d'uso sarebbe quello di utilizzare :NOPASSWDin combinazione con un gruppo e un gruppo passwd:
Aggiungi una linea ai sudoers:
%rudo ALL=(ALL:ALL) NOPASSWD:ALL
Creare un gruppo protetto passwd:
groupadd rudo
gpasswd rudo # Enter passwd
Ora quando accedi come utente non privilegiato (supponendo che tu non sia già nel rudogruppo), accedi al rudogruppo, a quel punto ti verrà richiesta la password.
login user
newgrp rudo
Ora puoi eseguire senza sudopassword, purché rimani connesso al gruppo.
SOLUZIONE 2: runaspw
Un modo migliore, forse più sicuro per fare questo usa runaspw. runaspwè associato runas_defaultall'opzione, quindi è necessario aggiungere anche questa opzione.
Supponendo che tu abbia già la %sudovoce di gruppo predefinita :
%sudo ALL=(ALL:ALL) ALL
aggiungi queste righe al file sudoers:
Defaults:%sudo runas_default=sudo
Defaults:%sudo runaspw
Ora aggiungi un nuovo sudoutente con una password:
useradd sudo -d /nonexistent -s /usr/sbin/nologin -MNr
passwd sudo
Ora agli utenti del gruppo sudo verrà richiesto il passwd dell'utente sudo, ma solo gli utenti del gruppo sudo saranno in grado di eseguire il sudo (diversamente dalla soluzione di gruppo sopra, dove chiunque nel gruppo o con il passwd del gruppo potrebbe eseguire il sudo).
Un problema minore è che l'utente runas predefinito ora è sudosudo per root come root è necessario specificare esplicitamente root:
sudo -u root <cmd>
Ma abbastanza facile da definire un alias ( alias sudo='sudo -u root') o un comando sudo indiretto.