Esiste un comando a riga singola per eseguire `su`?


15

Posso fare un sucon su <username>e mi chiede la mia password. Esiste un parametro password per sutale che non mi verrà richiesta una password?

per esempio su <username> -p <password>


Sembra che la domanda si adatti perfettamente a superutente: superuser.com :-)
HongboZhu


1
L'ho preso da superuserqui, superuser.com/questions/67765/…
alvas,

Risposte:


12

Se vuoi scrivere uno script che funziona come un altro utente, qualcosa del genere funziona, anche se dows emette la parola "password" senza una nuova riga per uscire standard

su - username <<!
enterpasswordhere
enter commands to run as the new user
!

se hai un utente di nome fred con una password di 1234 e vuoi ottenere una ls della home directory di fred come fred, senza la stringa della password visualizzata, sembrerebbe

su - fred <<! >/dev/null 2>&1
1234
whoami > /dev/tty
ls > /dev/tty
!

2
hmm, "standard in must be a tty"
John Lawrence Aspden,

Ottengo lo stesso errore
MaxV,

12
Ottenere Errore: su: must be run from a terminal.
Abhishek Kashyap,

5

Credo che non ci sia e non sarebbe una buona idea. Ecco perché:
se scrivi una password in un comando simile su <username> -p <password>, verrebbe memorizzata in testo semplice nella tua cronologia di bash. Questo è certamente un enorme problema di sicurezza.

Se è necessario eseguire comandi con su(o sudo) in modo automatizzato, scrivere uno script shell contenente i comandi senza suo sudoed eseguiresu <username> script.sh


1
su root script è ancora necessario inserire passwd.
Dai Kaixian,

@DaiKaixian sì, ma non viene salvato da nessuna parte e nessuno può leggerlo
Wayne_Yux,

2
puoi provare qualcosa del tipo: echo <passwd> | sudo -S <command-line>Anche se non è sicuro, ma funziona.
Dai Kaixian,

1
il punto centrale della mia risposta è che non è necessario salvare una password in un comando. Quindi consiglio di non farlo
Wayne_Yux,

-3

Se si desidera eseguire alcuni comandi specifici come nuovo utente, utilizzare il comando seguente:
sudo -u {username} {command to be executed as the new user}


Questo non risponde alla domanda. La domanda è su come gestire la password.
Stephen C
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.