Sembra che nessun altro abbia affrontato l'ovvia preoccupazione qui. Inserendo sudo
nel tuo script che poi distribuisci promuovi cattive abitudini degli utenti . (Suppongo che tu lo stia distribuendo perché dici "dal punto di vista dell'utente").
La verità è che esiste una linea guida nell'uso di applicazioni e script che è simile al principio di sicurezza nel settore bancario di: Non dare mai le tue informazioni personali a qualcuno che ti chiama e dice che stanno chiamando "dalla tua banca" , e che esiste per ragioni simili.
La regola per le applicazioni è:
Non digitare mai la password quando richiesto a meno che non si sia certi di cosa si sta facendo. Questo vale tre volte per chiunque abbia sudo
accesso.
Se stai digitando la password perché hai eseguito sudo
sulla riga di comando, ottimo. Se lo stai digitando perché hai eseguito un comando SSH, va bene. Se lo stai digitando quando accedi al tuo computer, ovviamente, fantastico.
Se esegui semplicemente uno script o un file eseguibile esterno e inserisci la tua password quando ti viene richiesta, non hai idea di cosa ci faccia lo script. Potrebbe essere archiviarlo in un file temporaneo in testo normale, per quanto ne sai, e potrebbe anche non riuscire a ripulire dopo se stesso.
Ovviamente ci sono preoccupazioni separate e aggiuntive sull'esecuzione di un insieme sconosciuto di comandi come root
, ma quello di cui sto parlando qui è mantenere la sicurezza sulla password stessa . Anche supponendo che l'applicazione / lo script non sia dannoso, si desidera comunque che la password venga gestita in modo sicuro per impedire ad altre applicazioni di acquisirla e utilizzarla in modo dannoso.
Quindi, la mia personale risposta a questo è, la cosa migliore da inserire nel tuo script se ha bisogno dei privilegi di root è:
#!/bin/bash
[ "$UID" -eq 0 ] || { echo "This script must be run as root."; exit 1;}
# do privileged stuff, etc.
exec
- chiama se stesso ma allo stesso tempo sostituisce il processo, quindi non generiamo più istanze della sceneggiatura