Automatize o login com sudo e su

6

Eu conheço os riscos de segurança, mas estou realizando este experimento / exercício em uma velha máquina * nix que eu usava na casa. Portanto, fazer este exercício não trará nenhum risco de segurança à minha máquina. Dito isto, por favor, não publique comentários sobre segurança.

Eu também sei que posso alterar sudoers para desativar os prompts de senha, mas não estou interessado nisso.

Eu encontrei um comando:

echo "password" | sudo -S su

mas que funciona de forma muito estranha. Eu digito e o domínio permanece o mesmo; Eu não mudo para a raiz. Há algo mais que estou perdendo ou há uma maneira melhor de fazer isso?

Coisas que fiz:

  1. adicionou \n ao final da senha: a senha não foi verificada corretamente.
  2. omitindo o su : imprime o uso de como usar sudo corretamente
por Zchpyvr 02.09.2012 / 20:25

3 respostas

2

É bastante estranho, mas é o que funciona para mim:

% echo -e "password\n" | sudo -S su
<myusername>'s password:HOSTNAME: Undefined variable.
% sudo -S su

Portanto, na primeira etapa, a senha é passada para sudo (usando o sinal -e para ecoar, então \n é realmente uma nova linha) e, na segunda execução, a autenticação funciona sem solicitar senha.

(O retorno na segunda linha é provavelmente devido a um sistema configurado incorretamente ...)

Edit: Nessa sessão xterm, eu posso chamar sudo -S <command> quantas vezes eu quiser ... Isso provavelmente é porque eu estou dentro do limite de tempo em que a senha do sudo tem que ser digitada apenas uma vez.

    
por 04.04.2013 / 13:31
1

Eu usei o seguinte

echo password | sudo -S su - user_to_switch_to

execute

sudo -S su - user_to_switch_to

para alternar para o usuário desejado sem inserir manualmente a senha.

(N.B. substitua senha e user_to_switch_to pelo seu pwd e usuário)

    
por 30.04.2014 / 15:56
0

Eu tenho a sensação incômoda de que você está tentando executar um formulário de shell interativo su (e amigos) enquanto faz o redirecionamento de i / o. Eu não acho que vai funcionar, ou seja, echo passwd| lhe dará um eof (fim de arquivo) após a senha. Eu acho que você vai precisar de algo como esperar ou um utilitário de script de discagem. O expect tem um modo de passagem que pode ser chamado no final do script. isso não é necessário se o seu comando não for interativo como o xterm (que, apesar de totalmente interativo, não precisa de entrada padrão. Observe também se alguma senha foi lida do erro padrão, o que torna as coisas interessantes para dizer o mínimo. / o redirecionamento é menos provável que interfira com o seu prompt de senha)

    
por 30.04.2014 / 19:57