Я столкнулся с очень и очень странной проблемой сегодня ... Я последовал за ссылка на сайт чтобы установить 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
источник
id
как гитлаб?cd
внутрь.Ответы:
Похоже, что / home / git имеют 700 разрешений. Добавление разрешения на выполнение для группы (g + x) в / home / git позволяет получить доступ:
источник
Эта проблема была решена! Я смонтировал эту папку (репозитории) через NFS, и на NFS-сервере пользователей git и gitlab не существует. Я добавил их и установил для них подходящие группы, и все идет хорошо! Я провел несколько тестов по этому поводу - только когда сервер и клиент настроены на пользователя / группу, разрешения работают правильно.
источник