Grupo e permissão do Linux - por que não consigo acessar uma pasta para a qual já tenho permissão?


4

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

@izomorphius: A questão quase certamente será migrada para lá, e o OP não precisa fazer nada para que isso aconteça.
NPE

Você desconectou o gitlab e, em seguida, fez login novamente, para que o novo grupo fique ativo?
ott--

@ott Eu tenho certeza que desconectei o gitlab para fora e para dentro ......
Lingfeng Xiong

Você pode mostrar a saída de idcomo gitlab?
ott--

Aprendi da maneira mais difícil que você precisa ter permissões de execução (x) em uma pasta para cddentro dela.
usar o seguinte código

Respostas:


0

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:

# chmod g+x /home/git

Sinto muito, mas 'repositórios' é a pasta à qual não consigo acessar. E ele possui permissão de execução para o grupo 'git', você pode ver isso na saída do comando 'ls'.
Lingfeng Xiong

Quero dizer permissão x para a pasta / home / git também. Por favor, forneça a saída 'ls -ld / home / git'.
precisa saber é o seguinte

Eu já anexado que no meu post :-) originais
Lingfeng Xiong

0

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.