Ho due utenti che possono eseguire sudoalcuni comandi senza password (per semplificare, supponiamo che possano eseguire sudo TUTTI)
# /etc/sudoers
userA ALL = (root) NOPASSWD: ALL
userB ALL = (root) NOPASSWD: ALL
quindi userAaccedo come mio e voglio eseguire il debug di un comando eseguito da userB.
userA@host$ sudo su userB
userB@host$ sudo whoami
[sudo] Password: <--- WHY?!
Da questo punto in poi non posso sudo. Mi chiederà la password (possibilmente dell'utente B).
La mia prima ipotesi era che i sudoers facessero la differenza tra sessione e sessione di accesso corretta, ma ricevo ancora la richiesta della password usando -scon sudo e -lcon su.
- modifica 1:
Inoltre, ho appena testato consentendo sudo come TUTTI gli utenti e
userA@host$ sudo -s -u userB
userB@host$ sudo whoami
[sudo] Password: <--- WHY?!
ma sudoers è ancora ignorato e ulteriori chiamate sudo mentre userB mostra la richiesta della password sudo proprio come prima.
sudoper eseguire il comando come root, che può quindi sucome userB. ho provato a semplificarlo dopo la mia modifica1. dove consento a userA di impersonare direttamente userB. è un po 'più facile seguire e mostrare anche il problema.
sudo -savvierà una shell. mentre sta tecnicamente "eseguendo un comando" la conseguenza pratica è molto simile a "cambiare utente" /
sudo -suna shell come userB, puoi eseguire i comandi come userB semplicemente digitandoli; non hai più bisogno di usare sudo. sudosenza il -uflag viene semplicemente eseguito un comando come root, quindi non c'è motivo di passare a userB se si esegue comunque un comando come root.
sudo su userBseguito da whoami, NON sudo whoami.
suè cambiare utente edsudoeseguire un comando come un altro utente. Non c'è un vero scopo per combinarli. Non sono sicuro di cosa stai cercando di risolvere; perché non aprire un altro terminale?