Группа Linux и разрешение - почему я не могу получить доступ к папке, к которой у меня уже есть разрешение?

4

Я столкнулся с очень и очень странной проблемой сегодня ... Я последовал за ссылка на сайт чтобы установить GitLab на мой сервер Linux сегодня, в разделе Gitolite есть две строки для установки разрешения и владельца папки:

sudo chmod -R ug+rwXs,o-rwx /home/git/repositories/
sudo chown -R git:git /home/git/repositories/

И перед этими строками он создал пользователя и добавил его в определенную группу:

sudo adduser --disabled-login --gecos 'GitLab' gitlab
sudo usermod -a -G git gitlab

Я проверил пользователя и разрешения после этих шагов:

gitlab@vm-leader:/home/git$ id
uid=1001(gitlab) gid=1001(gitlab) groups=1001(gitlab),105(git)
gitlab@vm-leader:/home/git$ ls -al
total 56
drwxr-xr-x 8 git  git  4096 Jan  4 16:55 .
drwxr-xr-x 7 root root 4096 Jan  4 11:50 ..
-rw------- 1 git  git    87 Jan  4 17:02 .bash_history
drwxr-xr-x 2 git  git  4096 Jan  4 14:04 bin
drwx------ 2 git  git  4096 Jan  4 14:04 .cache
-r--r--r-- 1 root root  398 Jan  4 14:04 gitlab.pub
drwxr-xr-x 5 git  git  4096 Jan  4 14:01 gitolite
drwxr-x--- 6 git  git  4096 Jan  4 14:04 .gitolite
-rw-r--r-- 1 git  git  5064 Jan  4 14:04 .gitolite.rc
-rw-r--r-- 1 git  git    37 Jan  4 14:04 .profile
-rw-r--r-- 1 git  git    12 Jan  5 19:43 projects.list
drwsrws--- 6 git  git  4096 Jan  5 17:29 repositories
drwx------ 2 git  git  4096 Jan  5 19:43 .ssh
gitlab@vm-leader:/home/git$ 

Основываясь на этих результатах, я считаю, что папка 'repositories' разрешена для доступа пользователей той же группы, в этом случае группа 'git' имеет разрешение на доступ к этой папке. Также пользователь 'gitlab' принадлежит к группе 'git'. Так что пользователь 'gitlab' должен иметь возможность доступа к этой папке. Тем не менее, я получил это

gitlab@vm-leader:/home/git$ cd repositories/
bash: cd: repositories/: Permission denied
gitlab@vm-leader:/home/git$ 

Это слишком странно для меня, и я совершенно не знаю, почему это произошло или как это исправить. Кто-нибудь может дать мне подсказку? Заранее спасибо.

Дополнительная информация:

bear@vm-leader:/home/git$ ls -ld /home/git
drwxr-xr-x 8 git git 4096 Jan  4 16:55 /home/git
Lingfeng Xiong
источник
@izomorphius: вопрос почти наверняка перенесется туда, и ОП не нужно ничего делать, чтобы это произошло.
NPE
Вы вышли из gitlab, а затем снова вошли в систему, чтобы новая группа стала активной?
ott--
@ott Я уверен, что я вышел из Gitlab и ......
Lingfeng Xiong
Можете ли вы показать вывод id как гитлаб?
ott--
Я понял, как трудно иметь права на выполнение (x) для папки, чтобы cd внутрь.
BenjiWiebe

Ответы:

0

Похоже, что / home / git имеют 700 разрешений. Добавление разрешения на выполнение для группы (g + x) в / home / git позволяет получить доступ:

# chmod g+x /home/git
dchirikov
источник
Извините, но «репозитории» - это папка, к которой у меня нет доступа. И он действительно имеет разрешение на выполнение для группы 'git', вы можете увидеть это по выходным данным команды 'ls'.
Lingfeng Xiong
Я имею в виду разрешение x для папки / home / git. Пожалуйста, предоставьте вывод 'ls -ld / home / git'.
dchirikov
Я уже приложил это в своем оригинальном сообщении :-)
Lingfeng Xiong
0

Эта проблема была решена! Я смонтировал эту папку (репозитории) через NFS, и на NFS-сервере пользователей git и gitlab не существует. Я добавил их и установил для них подходящие группы, и все идет хорошо! Я провел несколько тестов по этому поводу - только когда сервер и клиент настроены на пользователя / группу, разрешения работают правильно.

Lingfeng Xiong
источник