Mailing List Archive

[issue14706] Inconsistent os.access os.X_OK on Solaris and AIX when running as root
New submission from Adi Roiban <adi@roiban.ro>:

The return value of os.access(FILE, os.X_OK) is not consistent across operating system when executed as "root"

I have tested with Python 2.5 on Linux and Solaris, but there is a bug in python-nose reporting the same behavior with Python 2.6 on Solaris and AIX.
http://code.google.com/p/python-nose/issues/detail?id=423

-------

On Solaris:

$ ls -al
-rw-rw-r-- 1 buildslave other 1079 May 1 16:25 nose_runner.py

$ ./bin/python
Python 2.5.6 (r256:88840, Nov 1 2011, 12:19:05)
[GCC 3.4.3 (csl-sol210-3_4-branch+sol_rpath)] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.access('nose_runner.py', os.X_OK)
False

$ sudo ./bin/python
Python 2.5.6 (r256:88840, Nov 1 2011, 12:19:05)
[GCC 3.4.3 (csl-sol210-3_4-branch+sol_rpath)] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.access('nose_runner.py', os.X_OK)
True

------

On Linux:

$ ls -al
-rw-rw-r-- 1 adi adi 1079 2012-05-02 11:25 nose_runner.py

$ ./bin/python
Python 2.5.5 (r255:77872, Sep 14 2010, 16:22:46)
[GCC 4.4.5] on linux2
>>> import os
>>> os.access('nose_runner.py', os.X_OK)
False

$ sudo ./bin/python
Python 2.5.5 (r255:77872, Sep 14 2010, 16:22:46)
[GCC 4.4.5] on linux2
>>> import os
>>> os.access('nose_runner.py', os.X_OK)
False

----------
messages: 159784
nosy: adiroiban
priority: normal
severity: normal
status: open
title: Inconsistent os.access os.X_OK on Solaris and AIX when running as root
type: behavior

_______________________________________
Python tracker <report@bugs.python.org>
<http://bugs.python.org/issue14706>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/list-python-bugs%40lists.gossamer-threads.com
[issue14706] Inconsistent os.access os.X_OK on Solaris and AIX when running as root [ In reply to ]
Antoine Pitrou <pitrou@free.fr> added the comment:

This is not a Python bug. os.access() is just a wrapper around the POSIX access() function:
http://pubs.opengroup.org/onlinepubs/9699919799/functions/faccessat.html

“If any access permissions are checked, each shall be checked individually, as described in XBD File Access Permissions, except that where that description refers to execute permission for a process with appropriate privileges, an implementation may indicate success for X_OK even if execute permission is not granted to any user.”

So this seems to be a well-known portability problem accross Unix implementations. If you want to test the executable bits, just use os.stat().

----------
nosy: +pitrou
resolution: -> invalid
status: open -> closed

_______________________________________
Python tracker <report@bugs.python.org>
<http://bugs.python.org/issue14706>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/list-python-bugs%40lists.gossamer-threads.com
[issue14706] Inconsistent os.access os.X_OK on Solaris and AIX when running as root [ In reply to ]
Adi Roiban <adi@roiban.ro> added the comment:

Many thanks for your comment!

Cheers,
Adi

----------

_______________________________________
Python tracker <report@bugs.python.org>
<http://bugs.python.org/issue14706>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/list-python-bugs%40lists.gossamer-threads.com