john@ubuntu01:~$ sudo ls -l /var/opt/gitlab/git-data/repositories/GL/www.git
total 25068
drwxr-xr-x 2 git git 4096 aug 14 19:58 branches
-rw-r--r-- 1 git git 66 aug 14 19:58 config
drwxrwxrwx 2 root root 4096 aug 15 14:56 custom_hooks
-rw-r--r-- 1 git git 73 aug 14 19:58 description
-rw-r--r-- 1 git git 23 aug 14 19:58 HEAD
lrwxrwxrwx 1 git git 47 aug 14 19:58 hooks -> /opt/gitlab/embedded/service/gitlab-shell/hooks
drwxr-xr-x 2 git git 4096 aug 14 19:58 hooks.old.1471193907
-rw-r--r-- 1 git git 1329 aug 15 14:48 index
drwxr-xr-x 2 git git 4096 aug 15 13:58 info
drwxr-xr-x 71 git git 4096 aug 15 14:55 objects
-rw-r--r-- 1 git git 98 aug 15 13:58 packed-refs
-rw-r--r-- 1 git git 25618530 aug 15 14:03 post-receive.log
drwxr-xr-x 5 git git 4096 aug 14 20:31 refs
john@ubuntu01:~$ ls -l /var/opt/gitlab/git-data/repositories/GL/www.git
ls: cannot access '/var/opt/gitlab/git-data/repositories/GL/www.git': Permission denied
Voici les ACL
john@ubuntu01:~$ sudo lsattr /var/opt/gitlab/git-data/repositories/GL/www.git/custom_hooks
-------------e-- /var/opt/gitlab/git-data/repositories/GL/www.git/custom_hooks/post-receive
Je n'avais jamais vu ça avant. Pas d'autorisation de LS même avec 777? J'ai besoin de partager ce dossier pour un développement plus pratique. Comment puis-je le résoudre? Je vous remercie.
EDITÉ: (voici vos demandes)
john@ubuntu01:~$ sudo ls -ld /var/opt/gitlab/git-data/repositories/GL/www.git
drwxrwxrwx 8 git git 4096 aug 15 14:48 /var/opt/gitlab/git-data/repositories/GL/www.git
john@ubuntu01:~$ sudo ls -ld /var/opt/gitlab/git-data/repositories/GL/www.git/custom_hooks
drwxrwxrwx 2 root root 4096 aug 15 14:56 /var/opt/gitlab/git-data/repositories/GL/www.git/custom_hooks
MODIFIÉ PLUS
sudo ls -ld /var/opt/gitlab/git-data/repositories/GL/www.git
ls: cannot access '/var/opt/gitlab/git-data/repositories/GL/www.git': No such file or directory
hmmm ... qu'est-ce que c'est?
permissions
chmod
user1797147
la source
la source
ls
utilisez ne sont pas affichées?ls: cannot access '/var/opt/gitlab/git-data/repositories/GL/www.git': Permission denied
alors montrez-nous ce qui se passe quand vousls -ld /var/opt/gitlab/git-data/repositories/GL/www.git
drwxr-x---
Réponses:
Cela se produit car il y a un répertoire plus haut dans l'arborescence où vous n'avez pas l'autorisation d'exécution. Si un répertoire parent ne dispose d'aucune autorisation d'exécution pour un utilisateur, cet utilisateur ne peut pas statuer de sous-répertoires, quelles que soient les autorisations sur ces sous-répertoires.
Exemple:
Même si je suis le propriétaire du répertoire "brownies" et que tous les utilisateurs ont la permission de le lire et de l'entrer, je ne peux pas y accéder si son répertoire parent n'a pas de permission d'exécution.
Il est préférable d' utiliser des groupes pour gérer les autorisations que de donner pour accorder aux répertoires l'autorisation 777. Êtes-vous sûr de devoir faire cela?
Comment résoudre le problème de manière plus sécurisée:
Supposons que
/var/opt/gitlab
vous ayez quelque chose comme ceci dans le répertoire:Ajoutez-vous et tous les autres utilisateurs qui ont besoin d'une autorisation au groupe git, par exemple:
Les utilisateurs doivent se déconnecter et se reconnecter pour que cela prenne effet. Même si une autorisation d'écriture est nécessaire sur un sous-répertoire, vous n'avez pas besoin de l'ajouter sur un répertoire parent, soit dit en passant, vous n'avez donc pas du tout besoin de l'utiliser
chmod
. Vous voudrez peut-être modifier vos autorisations de sous-répertoire pour empêcher quiconque de pouvoir y écrire:ou
la source