Ho due utenti che possono eseguire sudo
alcuni comandi senza password (per semplificare, supponiamo che possano eseguire sudo TUTTI)
# /etc/sudoers
userA ALL = (root) NOPASSWD: ALL
userB ALL = (root) NOPASSWD: ALL
quindi userA
accedo 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 -s
con sudo e -l
con 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.
sudo
per eseguire il comando come root, che può quindi su
come 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 -s
avvierà una shell. mentre sta tecnicamente "eseguendo un comando" la conseguenza pratica è molto simile a "cambiare utente" /
sudo -s
una shell come userB, puoi eseguire i comandi come userB semplicemente digitandoli; non hai più bisogno di usare sudo
. sudo
senza il -u
flag 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 userB
seguito da whoami
, NON sudo whoami
.
su
è cambiare utente edsudo
eseguire 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?