Eu posso fazer um sucom su <username>e ele pede minha senha. Existe um parâmetro de senha para suque não seja solicitada uma senha?
por exemplo su <username> -p <password>
superuseraqui, superuser.com/questions/67765/...
Eu posso fazer um sucom su <username>e ele pede minha senha. Existe um parâmetro de senha para suque não seja solicitada uma senha?
por exemplo su <username> -p <password>
superuseraqui, 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 suou sudoe 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.