我正在编写一个脚本来检查用户目录中文件的权限,如果它们不可接受我会警告它们,但我想检查不仅仅是登录的权限用户,还包括组和其他人。我怎样才能做到这一点?在我看来,Python中的.access()只能检查运行脚本的用户的权限。在Python中使用Python检查文件权限
46
A
回答
78
你是对的,os.access,如底层access系统调用,检查特定用户(真实而不是有效的ID,以帮助suid情况)。
os.stat是获取有关文件的更多一般信息(包括每个用户,组和其他人的权限)的正确方法。 os.stat
返回的对象的st_mode
属性具有该文件的权限位。
为了解释这些位,您可能需要使用stat模块。具体来说,您需要定义here的位掩码,并且您将使用&
运算符(位和)来使用它们来掩盖该st_mode
属性中的相关位 - 例如,如果您只需要True/False检查某个文件是否是组可读,一种方法是:
import os
import stat
def isgroupreadable(filepath):
st = os.stat(filepath)
return bool(st.st_mode & stat.S_IRGRP)
采取护理:os.stat
通话可能有些昂贵,所以一定要抽出你所关心的单次调用的所有信息,而不是不断重复每一个兴趣点的电话;-)。
7
使用os.access()
,标记为os.R_OK
,os.W_OK
和os.X_OK
。
编辑:如果要在Windows上测试目录权限,请检出this related question。
+5
你没有阅读问题,os.access只检查权限当前用户。 – 2011-07-04 20:22:02
8
您可以通过os.stat(path)
连同stat
模块检查文件权限以解释结果。
3
1
只是为了帮助其他人喜欢我谁来到这里的东西有点不同:
import os
import stat
st = os.stat(yourfile)
oct_perm = oct(st.st_mode)
print(oct_perm)
>>> 0o100664 //the last 3 or 4 digits is probably what you want.
有关详细信息,请参阅本:https://stackoverflow.com/a/5337329/1814774
相关问题
- 1. 使用python检查ldap访问权限
- 2. zip文件Python中的文件权限
- 3. 检查文件权限
- 4. 检查文件权限
- 5. 在Python中使用特定权限编写文件
- 6. 权限将文件保存在Python
- 7. python中文件的权限更改
- 8. 如何使用Haskell检查Linux文件的文件权限?
- 9. 在HDFS中检查权限
- 10. Python sudo权限
- 11. python shutil复制文件权限错误
- 12. 如何在Python中检查.h5文件
- 13. 在python中检查大日志文件
- 14. 检查.exe文件的权限级别
- 15. 检查文件夹权限保存VBA
- 16. 在Java中检查指定用户帐户的文件权限
- 17. 检查权限
- 18. Python - 检查用户是否具有管理员权限
- 19. 检查使用Python
- 20. 在RESTful API中检查用户权限
- 21. 在Rails中检查Facebook用户权限
- 22. 使用Python重置NTFS文件夹上的继承权限
- 23. 使用python创建共享窗口文件夹的权限
- 24. 使用python脚本将文件保存到磁盘的权限
- 25. python tarinfo权限位
- 26. 权限,Python脚本
- 27. 使用php检查子文件夹的htaccess权限
- 28. 在python中为其他python文件编写检查程序
- 29. 如何根据使用Django和Python的已认证用户检查权限
- 30. 在python中设置压缩文件的权限
很棒,这正是我希望找到的。非常感谢你。我刚刚开始在工作中为一个小型项目选择python,所以你可以告诉我还在学习。非常感谢! – jphenow 2009-12-07 19:11:34
非常好的实用工具。谢谢! – zerocog 2016-11-28 21:26:24