Esta é a base do meu problema: gostaria de adicionar sudo
direitos a um usuário, mas não usá-lo como root
por motivos de segurança.
Eu tenho um script PHP que precisa executar um comando ( drush
) através de exec()
. No entanto, o PHP é executado como um usuário e eu quero que o comando seja executado como outro usuário. Isso é necessário porque, se não, há um problema de permissão para gravar no diretório do outro usuário.
O comando drush
funciona, disponibilizei para todos os usuários.
O usuário atual (A) é um revendedor do cPanel que criou a outra conta / usuário (B).
Eu posso executar exec('ls -la')
como usuário A e ele retornará o conteúdo do CWD enquanto estivermos no diretório inicial do usuário A. O mesmo código com sudo
adicionado falha porque o usuário A não está na lista de sudoers.
O comando final faz o download dos arquivos para o diretório do usuário B e se parece com:
'<pwd> | sudo -S -u <usrB> drush dl drupal <irrelevant options>'
-S
deve executar automaticamente o comando como usuário B usando sua senha.
Executar exatamente o mesmo comando que o root funciona perfeitamente.
Eu queria saber se existe uma maneira de adicionar o usuário A aos sudoers sem acesso como root, e se isso seria seguro para evitar possíveis falhas de segurança. Se não for possível, existem alternativas? Eu vi um poderia excluir diretórios de sudoers usando !
, mas depois percebi que isso seria bastante falho.
Por favor, note que eu sou um desenvolvedor, por isso mesmo que eu saiba algumas noções básicas, eu não sou um profissional. O servidor está executando o CentOS 6.5, WHM / cPanel e eu tenho acesso root, se necessário. A ideia é que uma configuração única impedirá a configuração na criação de novos usuários.