我有一个目录,其中包含额外的用户位(第11位(。但是,Python的os
或stat
模块没有检查任何其他用户权限的方法。
我有一个文件/home/work/file_name.txt
:
drwxr-xr-x+ 2 POUG NEWYORK 8192 Oct 23 12:16 file_name.txt
我使用os.stat()
得到了file_name.txt
的状态,并得到了模式stat.filemode()
。
该模式仅作为drwxr-x-rx
出现,没有+
位。
getfacl file_name.txt/
#file: file_name.txt//
#owner: POUG
#group: NEWYORK
user::rwx
group::r-x
other::r-x
user:NYC:rwx
这是一个由两部分组成的问题:
是否有检索+位的方法?
是否有处理
getfacl
权限位的python模块?import os import stat status = os.stat('/home/work/file_name.txt') # retrieves permission bits in rwx form mode = stat.filemode(status.st_mode) # however, this only retrieves drwxr-x-r-x # test dir/file, read/write/execute for owner/group/others stat.S_ISDIR(mode) bool(status.st_mode & stat.S_IREAD) bool(mode & stat.S_ISVTX)
等等。。。
有哪些方法可以测试其他用户权限?
没有单独的+
位。
ls
代码知道如何检索ACL集。如果存在并且需要显示,ls将使用+
字符来标记ACL的存在。请参阅本文ServerFault。
有多个Python ACL访问器库。在谷歌上快速搜索后,第二个结果是"使用Posix 1e检索Python中的默认ACL",它指的是一个posix1e
模块,在PyPI中似乎是pylibacl。