为了为给定的一组用户创建共享文件夹,我需要具有继承的受限制的目录权限。 目标是只有指定组的root用户和用户才能读取&在内部,通过为我的目录中的未来内容继承这些权限。类似的东西:
drwxrws--- 2 root terminator 6 28 mai 11:15 test
我可以通过2次chmod调用来获得这个:
chgrp terminator test
chmod 770 test
chmod g+s
使用数字掩码在一个命令中执行此操作会很好。我需要使用一个掩码,因为它是一个python脚本,应该使用os.chmod()来完成这项工作。谢谢!
答案 0 :(得分:2)
os.chmod
与chmod
实用程序完全相同,但您需要记住chmod
的参数是表示 octal 中位图的字符串符号,而不是小数。这意味着相当于
chmod 2770 test
是
os.chmod('test', 0o2770)
您可能使用了os.chmod('test', 2770)
,它在八进制中为5322
,这与您似乎得到的位掩码一致。
答案 1 :(得分:1)
chmod u+rwx,g+rws,o-rwx test
应该做你想做的事。
或者,以下内容应该在脚本中执行:
import os
import stat
os.chmod('test', stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_ISGID)
答案 2 :(得分:0)
您可以通过一次调用chmod命令从命令行设置粘滞位,如下所示:
chmod 2770 test
前面的'2'设置组的粘滞位。
os.chmod()似乎需要一个前置零,以便它知道数字是八进制。我已经成功测试了以下内容:
import os
os.chmod('test', 02770)