3

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

4

3 回答 3

3

os.chmod与实用程序完全相同chmod,但您需要记住,参数chmod是一个字符串,表示以八进制表示的位图,而不是十进制。这意味着相当于

chmod 2770 test

os.chmod('test', 0o2770)

您可能使用了os.chmod('test', 2770),这将是5322八进制的,这与您似乎得到的位掩码一致。

于 2013-05-28T10:50:45.487 回答
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)
于 2013-05-28T10:38:17.670 回答
0

您可以通过一次调用 chmod 命令从命令行设置粘性位,如下所示:

chmod 2770 test

前面的“2”设置组的粘性位。

os.chmod() 似乎需要一个前面的零,以便它知道数字是八进制的。我已经成功测试了以下内容:

import os
os.chmod('test', 02770)
于 2013-05-28T10:17:06.440 回答