Eu posso fazer um su
com su <username>
e ele pede minha senha. Existe um parâmetro de senha para su
que não seja solicitada uma senha?
por exemplo su <username> -p <password>
superuser
aqui, superuser.com/questions/67765/...
Eu posso fazer um su
com su <username>
e ele pede minha senha. Existe um parâmetro de senha para su
que não seja solicitada uma senha?
por exemplo su <username> -p <password>
superuser
aqui, superuser.com/questions/67765/...
Respostas:
Se você deseja escrever um script que seja executado como um usuário diferente, algo como isso funciona, embora exiba a palavra "senha" sem uma nova linha para padronizar
su - username <<!
enterpasswordhere
enter commands to run as the new user
!
se você tiver um usuário chamado fred com uma senha 1234 e quiser obter um ls do diretório inicial de fred como fred, sem a sequência de senha exibida, seria semelhante a
su - fred <<! >/dev/null 2>&1
1234
whoami > /dev/tty
ls > /dev/tty
!
su: must be run from a terminal
.
Eu acredito, não existe e não seria uma boa ideia. Eis o porquê:
Se você escrever uma senha em um comando como su <username> -p <password>
, ela seria armazenada em texto sem formatação no seu histórico do bash. Este é certamente um enorme problema de segurança.
Se você precisar executar comandos com su
(ou sudo
) de maneira automatizada, escreva um shellscript contendo os comandos sem su
ou sudo
e executesu <username> script.sh
su root script
ainda é necessário inserir a senha.
echo <passwd> | sudo -S <command-line>
Embora não seja seguro, mas funciona.