Author Topic: [Resolvido]Como usar senha digitada com o comando su em um script?  (Read 5863 times)

Offline bred81

  • Usuário Ubuntu
  • *
  • Posts: 971
  • HAN?!
    • View Profile
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:
Code: [Select]
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 (?)
« Last Edit: 26 de October de 2010, 22:06 by 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
  • *****
  • Posts: 4.344
  • Delete, delete, delete!
    • View Profile
Re: Como usar senha digitada com o comando su em um script?
« Reply #1 on: 15 de October de 2010, 02:09 »
Dá uma olhada no suPHP e Expect, de alguma forma eles podem ajudar.

Offline Lugaid

  • Usuário Ubuntu
  • *
  • Posts: 33
  • Keep Walking!
    • View Profile
    • Web Arts!
Re: Como usar senha digitada com o comando su em um script?
« Reply #2 on: 26 de October 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
  • *****
  • Posts: 4.344
  • Delete, delete, delete!
    • View Profile
Re: Como usar senha digitada com o comando su em um script?
« Reply #3 on: 26 de October 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

  • Guest
Re: Como usar senha digitada com o comando su em um script?
« Reply #4 on: 26 de October 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
  • *
  • Posts: 33
  • Keep Walking!
    • View Profile
    • Web Arts!
Re: [Resolvido]Como usar senha digitada com o comando su em um script?
« Reply #5 on: 27 de October de 2010, 20:10 »
Sim, mas ele fica esperando a senha do mesmo jeito.