#49827 [Opn->Bgs]: shell_exec using ls /home fails with Permission denied
| From: | Sjoerd@php.net | Date: | Wed, 14 Oct 2009 17:05:16 +0000 |
| Subject: | #49827 [Opn->Bgs]: shell_exec using ls /home fails with Permission denied | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-143568@lists.php.net to get a copy of this message | ||
ID: 49827
Updated by: Sjoerd@php.net
Reported By: bill dot mcclendon at digiconllc dot com
-Status: Open
+Status: Bogus
Bug Type: Unknown/Other Function
Operating System: Linux RH
PHP Version: 5.2.11
New Comment:
Thank you for your feedback.
The behavior you report is not a bug in PHP. The 'ls' program is
executed succesfully and it gives the 'Permission denied' error, not
PHP.
The home directory may be mounted over NFS or there may be some other
reason why there are additional access restrictions.
Previous Comments:
------------------------------------------------------------------------
[2009-10-13 18:37:09] bill dot mcclendon at digiconllc dot com
PHP bug reporting/support.
1) No ACL's (you think I didn't check this already?)
2) You mean grave accent? Yes - same error (I checked that already
too).
It's not running in a VM either.
Bill
------------------------------------------------------------------------
[2009-10-10 12:02:17] Sjoerd@php.net
Thank you for your bug report.
Does your installation have other access control than UNIX permissions,
such as ACL? Can you succesfully execute 'ls /home' from the command
line, or using backticks in PHP?
------------------------------------------------------------------------
[2009-10-09 22:49:50] bill dot mcclendon at digiconllc dot com
Corrected email address (your form seems to have a problem)
------------------------------------------------------------------------
[2009-10-09 22:48:30] bill dot mcclendon at digiconllc dot com
Description:
------------
Running Apache 2.x and PHP 5.2
safe_mode = off
test case - using "<?php $cmd = 'ls /home'; shell_exec($cmd); ?>"
produces the error "ls: /home Permission denied"
using "<?php $cmd = 'ls /usr'; shell_exec($cmd); ?>" succeeds
(check the Apache error_log for errors)
However, both "/home" and "/usr" have the EXACT same permission and
ownership.
and Apache is running with "User owner" where "owner" is the owner of
the contents of "/home".
Listing of both paths:
8 drwxr-xr-x 15 root root 4096 Jun 24 2005 usr
8 drwxr-xr-x 5 root root 4096 Jan 8 2007 home
Shell is "/bin/bash" and it looks like:
764 -rwxr-xr-x 1 root root 772760 Dec 6 2004 /bin/bash
Any ideas?
Reproduce code:
---------------
Test cases:
FAIL:
<?php
$cmd = 'ls /home';
echo "<pre>".shell_exec($cmd)."</pre>";
?>
SUCCESS:
<?php
$cmd = 'ls /usr';
echo "<pre>".shell_exec($cmd)."</pre>";
?>
Expected result:
----------------
Listing of files:
SUCCESS result:
bin
etc
games
include
kerberos
lib
lib64
libexec
local
sbin
share
src
tmp
X11R6
Actual result:
--------------
For FAIL above (no results).
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=49827&edit=1