[ PHP - Google ] php rodar comando ROOT

209 views
Skip to first unread message

Thiago Avelino

unread,
Jan 27, 2009, 9:00:32 AM1/27/09
to list...@googlegroups.com
Bom dia pessoal como faço para o php pegar acesso root, exemplo tenho
um aplicativo em C que desenvolvi só que por exec() ele não roda
porque precisa de permissão root, como faço?

--
att.
_
°v° Thiago Avelino
/(_)\ Programador | SysAdmin
^ ^ Celular: (11) 7660-2933
www.avelino.us | www.centos-br.org

Diego Justino

unread,
Jan 27, 2009, 9:39:02 AM1/27/09
to list...@googlegroups.com
Hahahah, e o que esse comando exec esta executando, meu amigo?

2009/1/27 Thiago Avelino <thiagoav...@gmail.com>



--
Atenciosamente.
____________________________________________________________________
Diego Justino [diegoj...@gmail.com]
IBM Hortolância/SP - EMC - eMail & Collaboration Services - GNA/Relay Team
Integrated Technology Delivery, Server Systems Operations
External Phone: +55 19 3035.6104 | Mobile: 19 9114.8771

G. Sobrinho

unread,
Jan 27, 2009, 9:41:07 AM1/27/09
to list...@googlegroups.com
Se o processo do PHP não estiver executando como root (absurdamente não recomendado) o máximo que você consegue é rodar o comando por sudo (com permissão para executar sem confirmação de senha)

2009/1/27 Diego Justino <diegoj...@gmail.com>

Diego Justino

unread,
Jan 27, 2009, 9:41:31 AM1/27/09
to list...@googlegroups.com
O comando exec vai executar comandos do Sistema Operacional, ou scripts que sejam predefinidos por você, ou mesmo algum "alias", presumindo que você está rodando esse PHP seu em um Linux ou Unix.
Nessa caso, não é o php que vai "rodar" o comando como root, mas o Sistema Operacional que deve estar preparado para permitir que você, ou sua aplicação PHP, tenha acesso a executar esse comando.
CASO você tenha acesso ao root, procure saber sobre o aplicativo SUDO, que permite distribuir comandos ou tarefas que somente o usuário root poderia ter, a outros usuários de nível de acesso menor.

Abraços.
Atenciosamente.

2009/1/27 Diego Justino <diegoj...@gmail.com>

Thiago Avelino

unread,
Jan 27, 2009, 10:54:31 AM1/27/09
to list...@googlegroups.com
Isso quero executar uma shell script que eu fiz, a distribuição é
CentOS não tem sudo, e sim su só que pede confirmação de password.

Diego Justino coloquei o nome da function (php) não que estou
colocando assim no codigo php.

2009/1/27 Diego Justino <diegoj...@gmail.com>:

Rômulo Nunes

unread,
Jan 27, 2009, 11:13:44 AM1/27/09
to list...@googlegroups.com
Ideia:
O ato de executar esse comando precisa de preemptividade?
Se não precisar, uma opção é você trabalhar com a Crontab, executando um php via shell com o usuário desejado em horários programados (você pode incluir um controle para que o script verifique se deve ou não executar naquele momento). Isso evita também que você precise dar algum meio do usuário do apache (caso o acesso esteja sendo feito via apache) consiga executar como root.

--

Romulo Nunes

2009/1/27 Thiago Avelino <thiagoav...@gmail.com>

Diego Justino

unread,
Jan 27, 2009, 11:19:07 AM1/27/09
to list...@googlegroups.com
Se você pode fazer su, significa que o sudo esta instalado.
Agora, para rodar comandos direto como root, e SEM PEDIR SENHA, é necessário configurar o sudo para que DETERMINADO COMANDO para DETERINADO USUÁRIO não necessite de senha.
Isso só pode ser feito pelo administrador do sistema.
Por isso eu digo, se você é o administrador do servidor, procure qualquer documentação do SUDO que ele explica como configurar isso.

Abraço.

2009/1/27 Thiago Avelino <thiagoav...@gmail.com>

Renato de Freitas Freire

unread,
Jan 27, 2009, 11:23:22 AM1/27/09
to list...@googlegroups.com
Para configurar um usuario para executar sudo sem senha, basta editar o arquivo /etc/sudoers



--
Renato de Freitas Freire
ren...@morfer.org


2009/1/27 Diego Justino <diegoj...@gmail.com>

Diego Justino

unread,
Jan 27, 2009, 11:29:36 AM1/27/09
to list...@googlegroups.com
Muito bom esse manual Renato.
Para saber como retirar a senha para que o script php possa ser executado sem pedí-la, veja o ítem NOPASSWD AND PASSWD desse manual.
Muito bom, gostei mesmo.


2009/1/27 Renato de Freitas Freire <rena...@gmail.com>

G. Sobrinho

unread,
Jan 27, 2009, 2:06:08 PM1/27/09
to list...@googlegroups.com
Só lembrando que se tem su NÃO NECESSERIAMENTE tem o sudo...
Su é uma coisa, sudo é outra...

2009/1/27 Diego Justino <diegoj...@gmail.com>

Diego Justino

unread,
Jan 27, 2009, 2:38:29 PM1/27/09
to list...@googlegroups.com
Verdade mesmo, gabriel.
su - comando utilizado para alternar entre contar, matendo variáveis de ambiente ou não.
sudo - app utilizada para delegar a outros usuários determinados acessos (configurados) a usuários que somente o root poderia ter.

Obrigado pela correção.

2009/1/27 G. Sobrinho <gabriel....@gmail.com>
Reply all
Reply to author
Forward
0 new messages