代码之家  ›  专栏  ›  技术社区  ›  CW Holeman II

如何使用perl chmod在目录中添加set group id?

  •  1
  • CW Holeman II  · 技术社区  · 14 年前

    我可以用Perl chmod 函数设置权限位,例如:

    chmod S_IRWXU|S_IRWXG|S_IROTH, $the_dir;
    

    如何在上面的命令中将set group id添加到目录中?

    2 回复  |  直到 14 年前
        1
  •  4
  •   mob    14 年前

    不知道什么 S_xxx 别名用于设置组ID位,但其值为(八进制)02000。所以其中一个

    chmod 02000|S_IRWXU|S_IRWXG|S_IROTH, $the_dir;
    
    chmod 02774, $the_dir;
    

    可能有用。

    编辑: 现在我知道什么合适了 SXXXX 常数被命名为: S_ISGID

    $ perl -MFcntl -e 'printf "0%o", Fcntl::S_ISGID()'
    02000
    
        2
  •  1
  •   Graeme Perrow    14 年前

    你不能用 chmod 这样做。使用 chown 并将uid设置为-1,即

    chown -1, $groupid, $the_dir;