chmod with group inheritance rights rwx for user&只有小组

时间:2013-05-28 09:42:09

标签: python linux chmod

为了为给定的一组用户创建共享文件夹,我需要具有继承的受限制的目录权限。 目标是只有指定组的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()来完成这项工作。谢谢!

3 个答案:

答案 0 :(得分:2)

os.chmodchmod实用程序完全相同,但您需要记住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)