【问题标题】:Subdirectory not created with proper group even parent has SGID即使父级具有 SGID,也没有使用正确的组创建子目录
【发布时间】:2016-05-05 18:16:39
【问题描述】:

我有一个带有 SGID 位的文件夹:

lucas@arturito:/home$ ls -l | grep share
drwxrwsr-x 11 share      sambashare  4096 May  5 14:54 share

如果我进入共享并在其中创建一个文件夹,该文件夹将包含组“sambashare”。到目前为止,一切都很好......

lucas@arturito:/home$ cd share/
lucas@arturito:/home/share$ mkdir test
lucas@arturito:/home/share$ ls -l | grep test
drwxrwsr-x  2 lucas sambashare 4096 May  5 15:07 test

现在,如果我在 /home/share/test 下移动并创建一个新文件夹,该新文件夹将继承该组:SGID 正在工作。

lucas@arturito:/home/share$ cd test
lucas@arturito:/home/share/test$ mkdir test1
lucas@arturito:/home/share/test$ ls -l | grep test1
drwxrwsr-x 2 lucas sambashare 4096 May  5 15:09 test1

但是,在 /home/share 下,除了新创建的“测试”之外,我还有其他文件夹。如果我在其中任何一个下移动并创建一个新文件夹(例如“test2”),该新文件夹将忽略 SGID,该组将是我的组。

lucas@arturito:/home/share$ ls -l | grep 99
drwxrwxr-x  9 share sambashare 4096 May  5 15:11 99_varios

lucas@arturito:/home/share$ cd 99_varios/
lucas@arturito:/home/share/99_varios$ mkdir test2
lucas@arturito:/home/share/99_varios$ ls -l | grep test2
drwxrwxr-x  2 lucas lucas      4096 May  5 15:11 test2

为什么会这样? /home/share 为它下面的任何其他目录(新的或旧的)拥有 g+s 来继承 /home/share 的组还不够吗?

我迷路了。任何提示或想法将不胜感激!

谢谢!

卢卡斯

【问题讨论】:

    标签: linux file-permissions


    【解决方案1】:

    新文件夹将继承该位,但现有文件夹需要明确设置。您可以运行以下命令一次以递归方式将其设置在任何现有子文件夹上。

    find /home/share -type d -exec chmod g+s '{}' \;
    

    【讨论】:

    • 感谢@Alfred,这确实是答案:我虽然 any 文件夹会继承 SGID。现在我已经在所有子文件夹上递归设置它,一切都按预期工作。谢谢!卢卡斯
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-17
    • 2021-08-17
    • 1970-01-01
    • 2013-06-29
    • 2018-11-20
    相关资源
    最近更新 更多