note 56274 added to function.exec

From: Date: Mon, 29 Aug 2005 13:22:07 +0000
Subject: note 56274 added to function.exec
Groups: php.notes 
Request: Send a blank email to php-notes+get-94336@lists.php.net to get a copy of this message
Using sudo (http://www.sudo.ws/) to exec system commands from PHP This is a secure way to use sudo from PHP to perform sysadmin tasks from a php webapplication. (can be used with exec or passthru) - Make a PHP script in the WWW root directory : client.php [/home/mywebdir/html/client.php] <? passthru('echo hello world | sudo /usr/bin/php -f /home/server.php'); ?> - Make a PHP script outside the WWW directory : server.php [/home/server.php] <? echo join('',file('php://stdin')); ?> Add a line to /etc/sudoers [in /etc/sudoers] www ALL=(ALL) NOPASSWD: /usr/bin/php -f /home/server.php Now execute client.php in the webbrowser (as www user) - client.php will execute sudo - sudo will execute server.php by php as root ! In server.php you can do everything you like requiring root privileges. BEWARE ! every php script can now execute server.php, make it secure ! (filter parameters etc.) I have tested this method and it works ! Kind regards, Pim Koeman Wittenborg-University, Deventer, the Netherlands http://www.wittenborg-university.com ---- Manual Page -- http://www.php.net/manual/en/function.exec.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+56274 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+56274&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+56274&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+56274&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+56274&report=yes&reason=useless Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+56274&report=yes&reason=non-english Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+56274&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+56274&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#94336) next »