Как управлять разрешениями на папки Linux?

Я немного запутался в разрешениях Linux. Я настраиваю центральный репозиторий Git, к которому пользователи получают доступ по SSH. Я использую ACL файловой системы (ссылка) и обычные разрешения Linux. Я собираюсь сделать следующее:

  • Найдите способ, чтобы только те пользователи, которых я хочу, могли перечислять / читать / писать / выполнять каталог "/ var / github" (таким образом, я назначаю группу пользователю, которому я хочу дать такой вид разрешения)
  • Пользователь «git» - единственный пользователь, который может создавать новые папки в «/ var / github».

Это можно сделать? Некоторые подсказки, как это сделать?

С уважением,


person André    schedule 04.10.2011    source источник


Ответы (3)


Вы можете использовать списки управления доступом, чтобы предоставить доступ нескольким группам. Вот пример сеанса (с использованием Ubuntu, но он должен быть таким же для CentOS), который предоставляет доступ для чтения группе grp1 и группе grp2 для чтения, записи и выполнения:

$ touch foo
$ setfacl -m "g:grp1:r--,g:grp2:rwx" foo
$ getfacl foo
# file: foo
# owner: me
# group: me
user::rw-
group::r--
group:grp2:rwx
group:grp1:r--
mask::rwx
other::r--
person Dan Cruz    schedule 05.10.2011
comment
@ André Можете ли вы предоставить дополнительную информацию о том, что именно не работает: примеры команд, ошибки и т. Д. - person Dan Cruz; 05.10.2011

chown git:git /var/github; chmod 750 !$

Теперь только группа git может читать папку, и только пользователь git может ее изменять.

person Daniel Brockman    schedule 04.10.2011
comment
Спасибо за ответ, Даниэль. Я спрашиваю вас, о чем я просил psion: нет никакого способа, чтобы с папкой / var / github могло быть связано более одной группы? Я хотел бы иметь одну группу под названием github-total, чтобы пользователи могли делать все, что они хотят, и другую группу под названием github-read, которую пользователи могли бы только читать. Это возможно? - person André; 05.10.2011

Убедитесь, что вместе с пользователем «git» существует группа «git». Добавьте всех пользователей в группу, к которой вы дадите доступ. Измените свойства владения вашего каталога на пользователя и группу git, а затем разрешение 750. Команды владения и режима следующие:

chown git:git /var/github
chmod 750 /var/github

Разрешение 750 позволяет пользователю делать в папке практически все, и только члены группы «git» читают и, возможно, выполняют в этой папке. Какие программы и команды вы используете для управления пользователями, зависит от вас.

person psion    schedule 04.10.2011
comment
Нет возможности, чтобы с папкой / var / github было связано более одной группы? Я хотел бы иметь одну группу под названием github-total, чтобы пользователь мог делать все, что он хочет, и другую группу под названием github-read, которую пользователь мог только читать. Это возможно? - person André; 05.10.2011