У меня есть две группы group1 и group2 .

Мне нужны пользователи группы group1 чтобы иметь возможность чтения-записи (rwx) файлов, принадлежащих пользователям в group2 , но пользователи в group2 не могут записывать в (rx) файлы из group1 .

Все пользователи в группе могут читать, но не записывать файлы в одной группе (rx)

Я знаю, что могу использовать ACL (списки контроля доступа), чтобы справиться с этим.

setfacl -m g:group1:rwx "directory owned by a group2 user"

проблема в том, что он должен быть установлен для каждой новой папки. есть ли способ установить по умолчанию, чтобы к каждому файлу / папке нового group2 user's применялось это разрешение?

будет ли применено это значение по умолчанию, если я создам нового пользователя в group2?

Я знаю, что обычные разрешения копируются из /etc/skel в домашнюю папку при создании нового пользователя, но как сделать так, чтобы разрешения acl также копировались?

2 ответа2

0

Вам не нужны ACL.

Поместите всех пользователей из группы1 также в группу2. Затем убедитесь, что вы установили бит setgid в каталогах: все новые файлы будут принадлежать владельцу каталога с аналогичными правами доступа (setgid будет добавлен в новые подкаталоги).

# Setup as root
mkdir -p /tmp/test/1
chgrp group1 /tmp/test/1
chmod g+wsx,o= /tmp/test/1
mkdir -p /tmp/test/2
chgrp group2 /tmp/test/2
chmod g+ws,o= /tmp/test/2
# user1 is in groups users (primary gid), group1, group2 
# user2 is in groups users (primary gid), group2
# as user1:users
mkdir -p /tmp/test/{1,2}/d1
touch /tmp/test/{1,2}/{f1,d1/f1}
# as user2:users
mkdir -p /tmp/test/{1,2}/d2
touch /tmp/test/{1,2}/{f2,d2/f2}
# check the ownerships on everything
ls -la /tmp/test/{1,2}/{f{1,2},d{1,2},d{1,2}/f{1,2}}

Если вы хотите придерживаться списков ACL, вам нужно взглянуть на ACL по умолчанию, с ними вы делаете то же, что и выше.

Что касается добавления новых пользователей и /etc/skel/ , боюсь, вам не повезло, команда stock useradd не сохраняет ACL или xattrs при копировании /etc /skel /.

0

Для разрешений по умолчанию это "-d". Таким образом, вы можете использовать это:

setfacl -d -m g:group1:rwx "Main directory owned by group2 user"

Также проверьте действующие права с getfacl. Возможно, вам придется установить маску также.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .