SOLUZIONE 1: newgrp
Un modo semplice per affrontare il tuo caso d'uso sarebbe quello di utilizzare :NOPASSWD
in 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 rudo
gruppo), accedi al rudo
gruppo, a quel punto ti verrà richiesta la password.
login user
newgrp rudo
Ora puoi eseguire senza sudo
password, purché rimani connesso al gruppo.
SOLUZIONE 2: runaspw
Un modo migliore, forse più sicuro per fare questo usa runaspw
. runaspw
è associato runas_default
all'opzione, quindi è necessario aggiungere anche questa opzione.
Supponendo che tu abbia già la %sudo
voce 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 sudo
utente 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 è sudo
sudo 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.