На этот вопрос уже есть ответ здесь:
У меня есть две группы «Группа1» и «Группа2»
У меня также есть папка «Папка»
, которую я хочу предоставить Группе1 права на чтение и запись, а Группа2 только чтение.
Есть предложения?
Позвольте мне получить это прямо:
Вы хотите, чтобы group1
имел доступ на чтение / запись к определенной папке.
Вы хотите, чтобы group2
имел доступ только для чтения к этой папке.
Вы не хотите, чтобы others
имел доступ для чтения к этой папке.
По умолчанию система разрешений Linux не допускает этого. Причина проста: для каждого inode есть только три бита (rwx
), которые описывают разрешения для конкретной группы , а именно группы, которая владеет файлом / каталогом, на который ссылается этот inode. Любой пользователь, который не является владельцем и не принадлежит к этой группе, автоматически попадает под others
. На практике это чаще всего достаточно, но в некоторых редких случаях это может быть не так.
Хорошая новость заключается в том, что Linux на самом деле поддерживает ACL (списки контроля доступа), которые обеспечивают гораздо более детальный контроль доступа. Чтобы включить ACL, вы должны добавить acl
в опции монтирования. Например, если раздел, содержащий каталог, в котором вы хотите настроить расширенное управление доступом, монтируется следующим образом в /etc/fstab
:
/dev/sda1 / ext4 defaults 0 1
... вы бы изменили это на:
/dev/sda1 / ext4 acl,defaults 0 1
Затем вам нужно перемонтировать файловую систему (например, mount -o remount /dev/sda1
) или просто перезагрузиться.
Далее давайте удостоверимся, что ваша папка /path/to/folder
предоставляет доступ на чтение / запись для group1
. Права доступа должны выглядеть примерно так:
drwxrwx--- 2 owner group1 4096 Dec 14 02:42 folder
. Кроме того, вы хотите предоставить доступ на чтение для group2
, и вообще никакого доступа для others
. Для этого выполните команду
setfacl -m g:group2:rx /path/to/folder
Вот и все. Позже вы можете просмотреть разрешения ACL для этой папки, используя getfacl
, а именно:
getfacl /path/to/folder
Дополнительная информация здесь: ACL: Расширенные права доступа к файлу .
Эти команды должны работать:
sudo chown -R OWNER-USERNAME:GROUPNAME /PATH/TO/Folder
sudo chmod -R 664 /PATH/TO/Folder
Это, мы надеемся, обеспечит чтение и усиление. доступ на запись к владельцу и группе и доступ только для чтения к «Others», который должен включать Group2 .
chmod
Страница руководства здесь .
chown
Страница руководства здесь .
Чтобы сбросить любые изменения, чтобы доступ имел только владелец, выполните:
sudo chown -R OWNER-USERNAME:OWNER-USERNAME /PATH/TO/Folder
sudo chmod -R 600 /PATH/TO/Folder