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
Hier sind ACLs
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
Ich habe das noch nie gesehen. Keine Erlaubnis zu LS auch bei 777? Ich muss diesen Ordner für eine bequemere Entwicklung freigeben. Wie kann ich das lösen? Vielen Dank.
BEARBEITET: (hier sind Ihre Anfragen)
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
MEHR BEARBEITET
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 ... was ist das?
permissions
chmod
user1797147
quelle
quelle
ls
werden nicht angezeigt.ls: cannot access '/var/opt/gitlab/git-data/repositories/GL/www.git': Permission denied
Zeigen Sie uns, was passiert, wenn Siels -ld /var/opt/gitlab/git-data/repositories/GL/www.git
drwxr-x---
Antworten:
Dies geschieht, weil es ein höheres Verzeichnis in der Baumstruktur gibt, in dem Sie keine Ausführungsberechtigung haben. Wenn ein übergeordnetes Verzeichnis für einen Benutzer keine Ausführungsberechtigung hat, kann dieser Benutzer keine Unterverzeichnisse angeben, unabhängig von den Berechtigungen für diese Unterverzeichnisse.
Beispiel:
Obwohl ich der Eigentümer des Verzeichnisses 'brownies' bin und alle Benutzer die Berechtigung zum Lesen und Eingeben haben, kann ich nicht darauf zugreifen, wenn das übergeordnete Verzeichnis keine Ausführungsberechtigung hat.
Es ist besser, Gruppen zum Verwalten von Berechtigungen zu verwenden, als Verzeichnissen die Berechtigung 777 zu erteilen. Sind Sie sicher, dass Sie das tun müssen?
So beheben Sie das Problem auf sicherere Weise:
Nehmen wir an,
/var/opt/gitlab
Sie haben im Verzeichnis Folgendes:Fügen Sie sich selbst und alle anderen Benutzer hinzu, die eine Berechtigung für die Git-Gruppe benötigen. Beispiel:
Benutzer müssen sich abmelden und wieder anmelden, damit dies wirksam wird. Selbst wenn für ein Unterverzeichnis Schreibberechtigungen erforderlich sind, müssen Sie diese nicht in einem übergeordneten Verzeichnis hinzufügen, sodass Sie sie überhaupt nicht verwenden müssen
chmod
. Möglicherweise möchten Sie Ihre Unterverzeichnis-Berechtigungen ändern, um zu verhindern, dass jemand darauf schreiben kann:oder
quelle