Hoje encontrei um problema muito, muito estranho ... Segui um link para instalar o GitLab no meu servidor Linux hoje, na seção Gitolite, existem duas linhas para definir a permissão e a propriedade de uma pasta:
sudo chmod -R ug+rwXs,o-rwx /home/git/repositories/
sudo chown -R git:git /home/git/repositories/
E antes dessas linhas, ele criou um usuário e o adicionou a um grupo específico:
sudo adduser --disabled-login --gecos 'GitLab' gitlab
sudo usermod -a -G git gitlab
Verifiquei o usuário e as permissões após estas etapas:
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$
Com base nesses resultados, acredito que a pasta 'repositórios' é permitida para usuários do mesmo grupo acessarem; nesse caso, o grupo 'git' tem permissão para acessar esta pasta. Além disso, o usuário 'gitlab' pertence ao grupo 'git'. Portanto, o usuário 'gitlab' deve poder acessar essa pasta. No entanto, eu entendi
gitlab@vm-leader:/home/git$ cd repositories/
bash: cd: repositories/: Permission denied
gitlab@vm-leader:/home/git$
Isso é muito estranho para mim e eu não tenho idéia do por que isso aconteceu ou como corrigi-lo. Alguém pode me dar uma dica? Obrigado antecipadamente.
Informação adicional:
bear@vm-leader:/home/git$ ls -ld /home/git
drwxr-xr-x 8 git git 4096 Jan 4 16:55 /home/git
fonte
id
como gitlab?cd
dentro dela.Respostas:
Parece que / home / git tem 700 permissões. Adicionar permissão de execução para o grupo (g + x) ao / home / git permite que você obtenha acesso:
fonte
Este problema foi resolvido! Montei essa pasta (repositórios) via NFS e, no servidor NFS, os usuários git e gitlab não existem. Adicionei-os e montei grupos adequados para eles, e tudo vai bem! Eu fiz alguns testes sobre isso - somente quando o servidor e o cliente estão definidos como usuário / grupo adequado, as permissões funcionam corretamente.
fonte