当limits.conf文件为644时,access()返回no writable right

时间:2017-03-21 10:56:03

标签: python linux

/etc/security/limits.conf的权利是644

当我使用python时:

>>导入操作系统;
>> os.access(“/ etc / security / limits.conf”,os.W_OK);

linux已禁用SELinux,我现在很困惑。

enter image description here

而且,当我查看此文件时,底部有“[readonly]”,其他文件具有相同的权限(644),没有此提示。
所以我猜是某些安全系统即使用644也只保留这个文件,这是不好的我不明白。

1 个答案:

答案 0 :(得分:0)

如果输入文件不存在,

os.access不会抛出错误。只是为了确保python可以看到该文件,您可以使用os.access标志运行F_OK吗?

更新:

你已经说过R_OK返回true,所以我怀疑F_OK标志会突出显示任何有用的信息,但仍值得尝试一下。

e.g。

>>> os.access(r'/etc/xpasswd', os.F_OK)
False
>>> 

vs

>>> os.access(r'/etc/passwd', os.F_OK)
True
>>>

另外,请尝试以下某些命令,看看它们是否突出显示任何问题。

以root身份:

>>> import os
>>> os.getuid()
0
>>> os.access(r'/etc/passwd', os.R_OK)
True
>>> os.access(r'/etc/passwd', os.W_OK)
True
>>> os.access(r'/etc/passwd', os.F_OK)
True
>>> os.access(r'/etc/xpasswd', os.R_OK)
False
>>> os.access(r'/etc/xpasswd', os.W_OK)
False
>>> os.stat(r'/etc/xpasswd')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 2] No such file or directory: '/etc/xpasswd'
>>>

作为非root用户:

>>> import os
>>> os.getuid()
501
>>> os.access(r'/etc/passwd', os.R_OK)
True
>>> os.access(r'/etc/passwd', os.W_OK)
False
>>> os.access(r'/etc/passwd', os.F_OK)
True
>>> os.access(r'/etc/xpasswd', os.R_OK)
False
>>>