Как вы даете полный доступ w/ chmod нескольким группам? Нужно использовать ACL?
Прежде всего, спасибо за чтение. Я успешно выполнил задание по запуску plist, которое находится в моей папке LaunchAgents. В основном он вызывает небольшой скрипт оболочки, который chmod - это права доступа к папке. Затем у меня есть другая работа, которая вызывает другой скрипт, который меняет его на прежний.
Теперь я пытаюсь выяснить, как изменить права доступа к папке / файлу для определенной группы. Я понимаю, что у каждой папки / файла есть владелец, который принадлежит группе. Да, но как я могу явно дать разрешения другой группе пользователей через сценарий оболочки? Это возможно? Я также читал о ACL, по этому пути я должен идти?
Мой сценарий теперь прост:
chmod -R 777 <FOLDERNAME>
затем обратно:
chmod -R 000 <FOLDERNAME>
Запуск этого при входе в систему как администратор.
Но я хотел бы предоставить доступ для другой группы, в теории:
chmod -R 777 <FOLDERNAME> <GROUPNAME>
<- ага, это то, что я думаю
1 ответ
Вам нужны ACL. Прежде всего, ваша файловая система должна быть смонтирована с этой опцией. Вы можете перемонтировать его с помощью этой опции:
# mount -o remount,acl /mount/point
Если вы хотите, чтобы эта опция была статической (доступна после каждой перезагрузки):
# vi /etc/fstab
#...
/dev/partition /mount/point fstype defaults,acl 1 2
Важной частью здесь является ",acl" в столбце параметров. Все остальное вы можете игнорировать.
Вам нужно установить acl
пакет и использовать setfacl
, Чтобы установить значения по умолчанию для каталога (каждый новый файл и вложенный каталог будут иметь эти acls):
# setfacl -d -m u::rwx,u:user1:rx,g::rx,g:group1:rwx,g:group2:rx,o::- directory
- Создание пользователя имеет полные права
- user1 только прочитал выполнить
- то же самое для группы по умолчанию
- group1 имеет права на чтение, выполнение и запись
- group2 читать и выполнять
- у других здесь нет шансов
Теперь вы должны установить разрешения для этого каталога (да, просто опция strip -d):
# setfacl -m u::rwx,u:user1:rx,g::rx,g:group1:rwx,g:group2:rx,o::- directory
ОБРАТИТЕ ВНИМАНИЕ, что если в этом каталоге есть какое-либо содержимое, разрешения ДОЛЖНЫ быть установлены явно. Вы можете использовать find для правильной настройки разрешений (помните, что каталоги должны иметь права на чтение и выполнение, чтобы люди могли получить к ним доступ / просмотреть их). Для начала по этому вопросу найдите./ -type d, который предоставит вам подкаталоги в текущем местоположении, и следующее установит разрешения по умолчанию для каждого из них:
# find ./ -type d -exec setfacl -d -m <acl> \{} \;
<acl>
должен быть желаемым ACL\{} \;
это escape-последовательность для поиска.
Если вы хотите проверить разрешения, унаследованные созданными файлами и каталогами, используйте getfacl
Вы также можете использовать ключ -R|--recursive, но это может испортить права доступа к файлам и каталогам.