Добавить всех пользователей в одной группе в другую группу?

8

У меня есть несколько пользователей в группе, aaи мне нужно дать им права на запись в папку, которая сейчас есть tomcat:tomcatdeploy.

Простой способ сделать это - добавить всех пользователей в tomcatdeployгруппу, один за другим.

Можно ли сказать, что члены группы aaтакже автоматически становятся участниками tomcatdeploy, каким-то образом добавив aaгруппу в tomcatdeployгруппу?

Или это попытка раздвинуть схему разрешений UNIX слишком далеко?

Богатые
источник

Ответы:

7

Вы можете использовать lidкоманду, чтобы получить список пользователей aa, и цикл по этому списку, чтобы добавить их к tomcatdeploy:

for u in $(lid -g -n aa); do usermod -a -G tomcatdeploy $u; done
Джастин этир
источник
for u in $(lid -g -n aa); do usermod -a -G tomcatdeploy $u; done(Полагаю, вы имели $uв виду usermod, а не только u)
asoundmove
Хороший улов! Я просто исправил код в своем ответе.
Джастин Этье
10

Вы не упомянули, на какой платформе вы работаете, но система Linux за последние 5 лет (или, вероятно, более) поддерживает ACL в дополнение к традиционным разрешениям файловой системы Unix. Используя ACL, вы можете добавить 2-ю группу в каталог с правами записи:

$ setfacl -m group:2ndtomcatdeploy:rwx target_directory

Вы можете использовать getfaclдля отображения ACL, и ls -lв конце обычной строки символьного режима будет отображаться знак «+».

Уил Кули
источник