【问题标题】:How do I modify file access control lists using python?如何使用 python 修改文件访问控制列表?
【发布时间】:2016-07-29 13:41:14
【问题描述】:

我有一个在 python 中执行大量文件操作的脚本,但我遇到了麻烦,因为我经常遇到将 ACL 设置为“组:每个人都拒绝删除”之类的文件。

对于其他权限问题,我使用os.chmod 修复问题,但找不到如何使用此方法或其他方法删除或修改 ACL。

【问题讨论】:

  • 你试过os.chmod("/tmp/foo.txt", stat.S_IWOTH) 吗? source
  • 是的,在偶然发现 ACL 之前,我尝试了各种权限操作。我的各种测试都没有奏效,所以我确定这是 ACL 设置。当我通过命令行 chmod 删除设置时它可以工作,我只是想看看它是如何在 python 中完成的
  • 刚刚查看了 pylibacl。它看起来像我需要的,除了它似乎只是 linux 并且我正在制作这个脚本跨平台。虽然起点不错,但谢谢

标签: python acl access-control chmod


【解决方案1】:

ma​​cOS上,您可以直接拨打chmod

# exceptions: 
#   subprocess.CalledProcessError:
#       Command '['chmod', '-h', '-a', 'everyone deny delete', 
#                 '/Users/liviu/Music']' returned non-zero exit status 1
if 0:
    subprocess.check_call(['chmod', '-h', '-a', 'everyone deny delete', os.path.expanduser('~/Music')])

proc = subprocess.Popen(['chmod', '-h', '+a', 'everyone deny delete', os.path.expanduser('~/Music')])
proc.communicate()

我想 Unix-es 上有一个等效的命令行。
现在 Windows 是另一回事了,但您始终可以信赖PowerShell

【讨论】:

    猜你喜欢
    • 2017-03-19
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    • 2017-11-19
    • 2017-11-09
    • 2010-12-08
    相关资源
    最近更新 更多