2

Допустим, в системе Debian GNU/Linux у меня есть два пользователя: me и otheruser . Оба являются членами группы shared-media . Я могу создать каталог для записи обоими:

$ sudo mkdir /srv/media/test-parent
$ sudo chown root:shared-media /srv/media/test-parent
$ sudo chmod g+w /srv/media/test-parent
$ sudo chmod g+s /srv/media/test-parent
$ ls -dlh /srv/media/test-parent
drwxrwsr-x 2 root shared-media 4.0K Apr 28 19:35 /srv/media/test-parent

Теперь, как otheruser , я создаю каталог и файл внутри него:

$ sudo -u otheruser mkdir /srv/media/test-parent/zztest
$ sudo -u otheruser touch /srv/media/test-parent/zztest/one

К сожалению, этот новый файл не может быть удален другими членами группы (предположим, что текущий пользователь - me):

$ ll /srv/media/test-parent/zztest/one 
-rw-r--r-- 1 otheruser shared-media 0 Apr 28 19:36 /srv/media/test-parent/zztest/one
$ rm /srv/media/test-parent/zztest/one 
rm: remove write-protected regular empty file ‘/srv/media/test-parent/zztest/one’? y
rm: cannot remove ‘/srv/media/test-parent/zztest/one’: Permission denied

Как настроить разрешения таким образом, чтобы otheruser только создавал файлы, доступные для записи и удаления другим членам группы?

1 ответ1

2

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

setfacl -m default:group::rwx /srv/media/test-parent

Это устанавливает "по умолчанию" (только для наследования) ACL group::rwx (сокращение g::rwx), которое применяется к группе-владельцу (т.е. группе, установленной с помощью chown/chgrp).

Но вы обычно хотите установить идентичный "обычный" ACL одновременно:

setfacl -m g::rwx,d:g::rwx /srv/media/test-parent

Вы можете несколько упростить это, предоставив доступ к определенной группе напрямую:

setfacl -m g:users:rwx,d:g:users:rwx /srv/blah

Это делает ненужным бит setgid и chgrp .

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