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

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

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

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

С уважением,

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--

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

Сейчас только группа git может читать папку и только пользователь git может изменить это.

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

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

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

Другие вопросы по тегам