Как установить одинаковые разрешения для всех файлов в общей папке - PullRequest
0 голосов
/ 17 марта 2011

У меня есть общий каталог. Groupid каталога - dev, и многие пользователи являются членами группы dev. Теперь мне нужно дать всем файлам, созданным в папке, иметь одинаковое разрешение, скажем, rwxrwxr--.

Как бы я это сделал? Одно решение, которое пришло мне в голову: Мне нужны 2 сценария оболочки, исполняемые всеми членами группы. Один скрипт должен изменить umask после проверки, что groupID текущего каталога - dev. Другой должен изменить umask на предыдущее значение по умолчанию.

Пожалуйста, дайте мне знать, как это сделать в сценарии оболочки.

Ответы [ 3 ]

1 голос
/ 17 марта 2011

Вы можете избежать использования сценариев оболочки, применив POSIX ACL по умолчанию (список контроля доступа) по умолчанию к общему каталогу.Например, в Linux:

setfacl -m d:u::rwx,d:g::rwx,d:o::r,d:g:dev:rwx /shared/dir

ACL по умолчанию, примененный к / shared / dir выше, переопределяет пользовательскую настройку umask, когда впоследствии в / shared / dir создаются файлы новые .Следующее вырезано из man-страницы acl (5) в linux:

ACL СОЗДАНИЯ И ОБЪЕКТА

ACL-доступ для файлового объекта инициализируется при создании объекта с помощьюлюбая из функций creat (), mkdir (), mknod (), mkfifo () или open ().Если ACL по умолчанию связан с каталогом, параметр mode для функций, создающих файловые объекты, и ACL по умолчанию для каталога используются для определения ACL нового объекта:

  1. Новый объект наследует ACL по умолчанию для содержащегося каталога в качестве ACL доступа.

  2. Записи ACL доступа, соответствующие битам разрешений файла, модифицируются таким образом, что они не содержат разрешений, которые не содержатся вразрешения, указанные параметром mode.

0 голосов
/ 20 марта 2011

Вопрос о названии не связан с вопросом в теле, но отвечает на вопрос в заголовке:

id=$( stat -f %g directory )
0 голосов
/ 17 марта 2011

Создайте один сценарий оболочки для копирования файлов в общий каталог.В этом сценарии оболочки установите права доступа к файлу после копирования.Убедитесь, что в каталоге установлен бит SGID;все файлы, созданные в каталоге, будут автоматически принадлежать группе, которой принадлежит каталог - dev в вашем сценарии.Обратите внимание, что в MacOS X фактически всегда установлен бит SGID для каталогов;то есть, когда файл создается, его группа является группой, которой принадлежит каталог.

Наказывайте любого, кто, очевидно, не использует сценарий оболочки, оставляя файлы с неправильными разрешениями.* Беспокоиться о том, все ли файлы должны быть исполняемыми;документы не должны.

беспокоиться о том, все ли файлы должны быть доступны для записи;где система контроля версий во всем этом?

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...