#49827 [Bgs]: shell_exec using ls /home fails with Permission denied
| From: | bill dot mcclendon at digiconllc dot com | Date: | Tue, 20 Oct 2009 21:44:51 +0000 |
| Subject: | #49827 [Bgs]: shell_exec using ls /home fails with Permission denied | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-143740@lists.php.net to get a copy of this message | ||
ID: 49827
User updated by: bill dot mcclendon at digiconllc dot com
Reported By: bill dot mcclendon at digiconllc dot com
Status: Bogus
Bug Type: Unknown/Other Function
Operating System: Linux RH
PHP Version: 5.2.11
New Comment:
No, the "ls" program was not executed successfully. Only when the
target was "/tmp" or "/usr". Any and all other paths - including
sub-directorties under "/usr" - failed with a permission violation.
I found the root cause and solved the issue. You can close this bug
report.
You may want to add a note/description of this issue so others are not
so trapped.
The root cause was "SELinux". It had been enabled and set to "enforced"
and this prevented anything from running that was not in the vary basic,
very SMALL list of commands configured for the default SELinux
delivery.
The system administrators were unaware of SELinux and had no knowledge
of it being configured - or even what it was.
Bill
Previous Comments:
------------------------------------------------------------------------
[2009-10-14 17:05:16] Sjoerd@php.net
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.
------------------------------------------------------------------------
[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