Autor Tópico: [Resolvido]Como usar senha digitada com o comando su em um script?  (Lida 5648 vezes)

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
[Resolvido]Como usar senha digitada com o comando su em um script?
« Online: 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 (?)
« Última modificação: 26 de Outubro de 2010, 22:06 por bred81 »
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: Como usar senha digitada com o comando su em um script?
« Resposta #1 Online: 15 de Outubro de 2010, 02:09 »
Dá uma olhada no suPHP e Expect, de alguma forma eles podem ajudar.

Offline Lugaid

  • Usuário Ubuntu
  • *
  • Mensagens: 33
  • Keep Walking!
    • Ver perfil
    • Web Arts!
Re: Como usar senha digitada com o comando su em um script?
« Resposta #2 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... queria passar como parâmetro a senha, para ele não esperar a senha ser digitada, e o script executar os próximos comandos.

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: Como usar senha digitada com o comando su em um script?
« Resposta #3 Online: 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.

libonati

  • Visitante
Re: Como usar senha digitada com o comando su em um script?
« Resposta #4 Online: 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?

Offline Lugaid

  • Usuário Ubuntu
  • *
  • Mensagens: 33
  • Keep Walking!
    • Ver perfil
    • Web Arts!
Re: [Resolvido]Como usar senha digitada com o comando su em um script?
« Resposta #5 Online: 27 de Outubro de 2010, 20:10 »
Sim, mas ele fica esperando a senha do mesmo jeito.