Fórum Ubuntu Linux - PT

Suporte Técnico => Programação e Scripts => Tópico iniciado por: bred81 em 14 de Outubro de 2010, 09:48

Título: [Resolvido]Como usar senha digitada com o comando su em um script?
Enviado por: bred81 em 14 de Outubro de 2010, 09:48
Opa!

Eu tenho um script em php (que pode muito bem ser exportado pra bash, mas em php seria bom) aonde (por ser em php) é executado pelo www-data. Por questões de segurança, quando for executar este script, quero trocar o usuário para um de um grupo específico.

Eu pensei em usar o comando su usuario, mas, não sei como passar a senha pra ele.
A senha é passada como a maioria das páginas de login que vemos pela internet, com um usuário e senha.
Também, se alguém souber (esse só pro pessoal do php), como eu sei que houve erro quando rodo o comando sheel_exec?

Em bash também não sei fazer isso.

Alguém pode me ajudar?

Esse script tem finalidade administrativa, pra facilitar a vida do pessoal que se quebra todo com o terminal.

Pra exemplificar minha dúvida:
Código: [Selecionar]
echo "User: "
read user
echo "Password: " (eu sei que há maneiras de esconder a senha, mas isso é só um exemplo)
read password

su $user (nesse ponto aqui, não sei como passar a senha para responder ao su)
echo $password (?)
Título: Re: Como usar senha digitada com o comando su em um script?
Enviado por: irtigor em 15 de Outubro de 2010, 02:09
Dá uma olhada no suPHP e Expect, de alguma forma eles podem ajudar.
Título: Re: Como usar senha digitada com o comando su em um script?
Enviado por: Lugaid em 26 de Outubro de 2010, 11:01
Olha, queria saber como resolver isso também, no meu caso o script tem que fazer login como root, mas, não to conseguindo passar a senha como parâmetro, quando eu acho o comando su, ele fica esperando a senha ser digita... queria passar como parâmetro a senha, para ele não esperar a senha ser digitada, e o script executar os próximos comandos.
Título: Re: Como usar senha digitada com o comando su em um script?
Enviado por: irtigor em 26 de Outubro de 2010, 12:06
A mesma coisa.

O Expect pode simular que a senha foi digitada na entrada padrão (dá pra usar junto com o php). http://www.php.net/manual/pt_BR/book.expect.php (ou shell_exec??)

Já o suPHP é um modulo que faz com que os scripts sejam executados pelos seu criadores (no lugar do www-data), ai seria questão de liberar no sudoers um usuário X e usar esse mesmo usuário como dono dos scripts.
Título: Re: Como usar senha digitada com o comando su em um script?
Enviado por: libonati em 26 de Outubro de 2010, 21:51
Olha, queria saber como resolver isso também, no meu caso o script tem que fazer login como root, mas, não to conseguindo passar a senha como parâmetro, quando eu acho o comando su, ele fica esperando a senha ser digita...
Já tentou usar sudo?
Título: Re: [Resolvido]Como usar senha digitada com o comando su em um script?
Enviado por: Lugaid em 27 de Outubro de 2010, 20:10
Sim, mas ele fica esperando a senha do mesmo jeito.