Preciso criar um novo usuário e, em seguida, svn co
no diretório inicial do usuário recém-criado, chamando um script bash de uma página php.
O exemplo abaixo é uma linha do arquivo sudoers que vi em outro fórum.
http ALL=NOPASSWD:/usr/sbin/useradd,/bin/mkdir,/bin/ln,/bin/chown,/bin/cp,/bin/sed
Esta linha obviamente define um sudo sem senha para o usuário http
e adiciona privilégios ao usuário http
para usar os comandos useradd
, mkdir
, chown
, cp
e sed
. Eu não gostaria de desativar o prompt sudo para todos os usuários, mas apenas para o usuário recém-criado (eu tinha visto uma resposta sobre comentar uma determinada linha no arquivo sudoers para impedir o prompt de senha sudo aqui no AU).
Da mesma forma, gostaria de adicionar privilégios de svn ao usuário www-data
.
www-data ALL=NOPASSWD: /usr/sbin/useradd,/bin/svn
Atualmente, o usuário www-data
pode criar um novo usuário usando o comando useradd
, mas não pode usar o comando svn. (Eu posso estar fazendo isso completamente errado, então sinta-se livre para me corrigir)
Este é o script bash que estou tentando executar.
sudo useradd newuser -d /home/newuser -s /bin/bash -m -p password
echo yes | sudo svn --username [username] --password [password] co [SVN link] /home/newuser/public_html
Quando tento chamar esse script da página do php usando o comando
$output = shell_exec("sh ./includes/setupsite.sh 2>&1");
Eu recebo o erro
sudo: no tty present and no askpass program specified
para a segunda linha (a linha svn co
)
Mas, em vez disso, quando tento executar sem sudo
, obtenho
----------------------------------------------------------------------- ATTENTION! Your password for authentication realm: Authentication Required can only be stored to disk unencrypted! You are advised to configure your system so that Subversion can store passwords encrypted, if possible. See the documentation for details. You can avoid future appearances of this warning by setting the value of the 'store-plaintext-passwords' option to either 'yes' or 'no' in '/var/www/.subversion/servers'. ----------------------------------------------------------------------- Store password unencrypted (yes/no)? svn: Can't make directory '/home/newuser/public_html': Permission denied
Então isso tornou óbvio que o sudo pode ser necessário. Eu vi uma questão semelhante aqui em si. Mas isso não foi respondido e a resposta fornecida não resolveu meu problema.
Atualização: as permissões / propriedade do arquivo são:
-rwxrwxrwx 1 www-data www-data 326 2012-08-08 17:56 setupsite.sh
Se você precisar de algum esclarecimento, por favor, deixe um comentário e eu vou editar a minha pergunta para adicionar os detalhes (desde que eu os tenha) o mais rápido possível.