Esegui sudo -v
. Di solito è usato per estendere il timeout della tua password sudo, ma può essere usato per determinare se hai sudo
privilegi.
$ sudo -v
Sorry, user [username] may not run sudo on [hostname].
Estratto della pagina man:
Se viene fornita l'opzione -v (convalida), sudo aggiornerà il timestamp dell'utente, richiedendo la password dell'utente se necessario. Questo estende il timeout sudo per altri 5 minuti (o qualunque sia il timeout impostato in sudoers) ma non esegue un comando.
Se il tuo utente è autorizzato solo a eseguire specifici comandi, questo comando funzionerà, indicando che sei autorizzato a eseguire qualcosa con privilegi diversi. Sebbene il messaggio abbia un aspetto diverso quando si tenta di eseguire un comando che in questo caso non è consentito (e non viene inviata alcuna posta a root ), è ancora possibile che ti trovi nei guai se gli amministratori leggono /var/log/secure
.
$ sudo ls
[sudo] password for [username]:
Sorry, user [username] is not allowed to execute '/bin/ls' as root on [hostname].
Per scoprire cosa sei autorizzato a correre con diversi privilegi, puoi usare sudo -l
. Nota che questo comando richiede di inserire la tua password.
Questo è molto semplice. Esegui sudo -l
. Questo elencherà tutti i privilegi sudo che hai.
Ecco la versione compatibile con gli script:
timeout 2 sudo id && echo Access granted || echo Access denied
poiché non si bloccherà sull'inserimento della password se non hai il sudo
accesso.
Puoi anche impostarlo in una variabile come:
timeout 2 sudo id && sudo="true" || sudo="false"
echo "$sudo"