[Resolvido]Como usar senha digitada com o comando su em um script?

Iniciado por bred81, 14 de Outubro de 2010, 09:48

tópico anterior - próximo tópico

bred81

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:

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 (?)
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

irtigor

Dá uma olhada no suPHP e Expect, de alguma forma eles podem ajudar.

Lugaid

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.

irtigor

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.

libonati

Citação de: Lugaid online 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...
Já tentou usar sudo?

Lugaid