Existe um comando de linha única para fazer `su`?


15

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>


Parece que os ataques de interrogação perferctly de superusuário: superuser.com :-)
HongboZhu


1
i got it from superuseraqui, superuser.com/questions/67765/...
alvas

Respostas:


12

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
!

2
hmm, 'no padrão deve ser um tty'
John Lawrence Aspden

Eu recebo o mesmo erro
MaxV

12
Obtendo erro: su: must be run from a terminal.
Abhishek Kashyap

5

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


1
su root script ainda é necessário inserir a senha.
Dai Kaixian 15/02

@DaiKaixian sim, mas não é salvo em qualquer lugar e ninguém pode lê-lo
Wayne_Yux

2
você pode tentar algo como:. echo <passwd> | sudo -S <command-line>Embora não seja seguro, mas funciona.
Dai Kaixian

1
o ponto principal da minha resposta é que não é salvo escrever uma senha em um comando. Então eu aconselho a não fazer isso
Wayne_Yux

-3

Se você deseja executar alguns comandos específicos como um novo usuário, use o seguinte comando:
sudo -u {username} {command to be executed as the new user}


Isso não responde à pergunta. A questão é sobre como lidar com a senha.
Stephen C
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.