Как использовать Perl chmod для добавления Set Group ID в каталог? - PullRequest
1 голос
/ 23 ноября 2010

Я могу использовать функцию Perl chmod для установки битов прав доступа, например:

chmod S_IRWXU|S_IRWXG|S_IROTH, $the_dir;

Как добавить Set Group ID в каталог в приведенной выше команде?

Ответы [ 2 ]

4 голосов
/ 23 ноября 2010

Не знаю, что такое псевдоним S_xxx для установленного бита идентификатора группы, но его значение (восьмеричное) 02000. Так что один из

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

chmod 02774, $the_dir;

, вероятно, будет работать.1006 * Редактировать: Теперь я знаю, как называется соответствующая S_xxx константа: это S_ISGID.

$ perl -MFcntl -e 'printf "0%o", Fcntl::S_ISGID()'
02000
1 голос
/ 23 ноября 2010

Вы не можете использовать chmod для этого. Используйте chown и установите uid -1, т.е.

chown -1, $groupid, $the_dir;
...