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
Aquí hay 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
Nunca he visto esto antes. ¿Sin permiso para LS incluso con 777? Necesito compartir esta carpeta para un desarrollo más conveniente. ¿Cómo puedo resolverlo? Gracias.
EDITADO: (aquí están sus solicitudes)
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
EDITADO MÁS
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 ... que es esto?
permissions
chmod
usuario1797147
fuente
fuente
ls
No se muestran los permisos del directorio que está utilizando?ls: cannot access '/var/opt/gitlab/git-data/repositories/GL/www.git': Permission denied
por lo que nos muestran lo que sucede cuandols -ld /var/opt/gitlab/git-data/repositories/GL/www.git
drwxr-x---
Respuestas:
Esto sucede porque hay un directorio más alto en el árbol donde no tiene permiso de ejecución. Si un directorio principal no tiene permiso de ejecución para algún usuario, entonces ese usuario no puede establecer ningún subdirectorio independientemente de los permisos en esos subdirectorios.
Ejemplo:
Aunque soy el propietario del directorio 'brownies' y todos los usuarios tienen permiso para leerlo e ingresarlo, no puedo acceder a él si su directorio principal no tiene permiso de ejecución.
Es mejor usar grupos para administrar permisos que dar a los directorios el permiso 777. ¿Estás seguro de que necesitas hacer eso?
Cómo solucionar el problema de una manera más segura:
Asumamos en
/var/opt/gitlab
directorio tiene algo como esto:Agregue usted y todos los demás usuarios que necesitan permiso para el grupo git, por ejemplo:
Los usuarios tienen que cerrar sesión y volver a iniciarla para que esto surta efecto. Incluso si se necesita permiso de escritura en un subdirectorio, no es necesario agregarlo en un directorio principal, por cierto, por lo que no tiene que usar
chmod
en absoluto. Es posible que desee cambiar los permisos de su subdirectorio para evitar que alguien pueda escribir en él:o
fuente