GNU/Linux >> Linux Esercitazione >  >> Linux

Sudo:esiste un comando per verificare se ho sudo e/o quanto tempo è rimasto?

So che questa è una domanda molto vecchia, ma ecco che l'ho fatto in una sceneggiatura oggi. Supponendo che essere sudo significhi essere in grado di eseguire qualsiasi comando come sudo (o, almeno, uptime)

CAN_I_RUN_SUDO=$(sudo -n uptime 2>&1|grep "load"|wc -l)
if [ ${CAN_I_RUN_SUDO} -gt 0 ]
then
    echo "I can run the sudo command"
else
    echo "I can't run the Sudo command"
fi

Tuttavia, se il tuo utente ha restrizioni nel visudo, questo controllo non sarà sufficiente, ad esempio, se il tuo utente può usare solo il comando make. Prova a eseguire un comando che sai funzionerà. Puoi aggiungere il filtro grep -v Sorry, ad esempio:$(sudo -n uptime 2>&1|grep "load" | grep -v Sorry|wc -l) per evitare questi falsi positivi.


Il -n L'opzione è disponibile nelle versioni più recenti di sudo, ma come hai affermato non è un'opzione. Non c'è un vero modo per fare quello che stai cercando a meno di provare sudo e vedere se ritorna con una richiesta di password. Se la tua preoccupazione è che desideri un'indicazione visiva, perché non iniziare sudo /bin/bash per avviare una sessione di root bash? Nota che questo non è sicuro, ma è anche un po 'insicuro se qualcuno si rende conto dei tuoi rapidi cambiamenti su sudo.


Per semplificare la risposta data da @wags007

if sudo -n true
then
  sudo id
else
  echo "sorry, but did not want to bother you"
fi

Tuttavia, se nella tua configurazione https://www.sudo.ws/man/1.8.15/sudoers.man.html hai defaults mail_badpass ci sarà una mail inviata per ogni test che risulta falso (avrebbe richiesto). Per evitare questo fastidio, cambia quella parte del tuo file sudoers in

Defaults       mail_badpass
Defaults!      /bin/true !mail_badpass

Di conseguenza, vengono inviate e-mail di avviso di sicurezza per tutti i comandi tranne /bin/true. Ebbene sì, qualcuno potrebbe ora provare a forzare una password chiamando sudo true un numero illimitato di volte senza che venga inviata alcuna mail di avviso di sicurezza.

Nota:usa sempre visudo invece del tuo editor preferito per modificare il file sudoers. In caso contrario, rischi di essere bloccato.


Linux
  1. Come verificare se un sistema Linux è a 32 o 64 bit

  2. Trucchi della riga di comando:come identificare la data e l'ora di un'esecuzione di un comando Unix

  3. Come posso verificare che un file esista ed eseguire un comando in caso contrario?

  4. Come fare in modo che il comando Linux ls mostri il secondo nel timestamp

  5. Come posso verificare quanto spazio libero è rimasto su un dispositivo per creare una partizione

[Suggerimenti Bash] Come cp o mv e cd in un comando

Come modificare data, ora e fuso orario in Debian 10

5 modi per verificare quanta RAM è installata e utilizzata su CentOS 8

Come controllare le informazioni sulla CPU in Linux

Come controllare la cronologia di riavvio del sistema e il tempo di avvio in Linux

Come controllare l'utilizzo di Inode da cPanel e dalla riga di comando?