Назад | Перейти на главную страницу

Измените групповое владение папками с помощью chmod g + s

У меня есть иерархия папок, в которой я хочу изменить владельца группы включая любые последующие добавления файлов / папок. Я собирался использовать chmod g + s, но не уверен, применимо ли оно к уже созданным папкам и как я запускаю это с именем группы.

Используя ответ / команду rthomson:

find /path/to/hierarchy -type d | xargs chmod g+s

У меня возникли проблемы, когда в любом из подкаталогов есть пробелы: вместо этого я просто использую find -exec варианты намного проще, а именно:

find /path/to/hierarchy -type d -exec chmod g+s {} \;

Если (очень немного) расширить существующие ответы, вы, вероятно, захотите рекурсивно установить право собственности на любые существующие файлы и каталоги, а также бит setgid для любых существующих каталогов. То есть, если в вашей иерархии уже есть файлы и каталоги. Если это не так, вам не нужно беспокоиться о рекурсивной части.

Что-то вроде этого:

find /path/to/hierarchy -type d | xargs chmod g+s
chgrp -R groupname /path/to/hierarchy

и все готово. Теперь, если вы хотите гарантировать определенные разрешения rwx для файлов / каталогов, скопированных или перемещенных в иерархию, это немного сложнее. Скорее всего, вам придется использовать списки ACL по умолчанию, но реализация ACL для Linux (я полагаю, основана на мертвом предложении POSIX) не всегда работает так, как можно было бы ожидать.

ты можешь использовать

chgrp -R папка

Это рекурсивно изменит владельца группы в папке, подпапках и их соответствующих файлах.

g + s добавляет бит "setgid", который в основном влияет только на поведение по умолчанию при создании новых файлов. (вкратце ... любые новые созданные файлы / каталоги будут иметь группу, установленную в группу родительской папки)

ты мог бы просто

chgrp group-name some_directory/* -R

рекурсивно изменить группу файлов в "some_directory" на "group-name" (-R)