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
Вот 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
Я никогда не видел этого раньше. Нет разрешения на ЛС даже с 777? Мне нужно поделиться этой папкой для более удобной разработки. Как я могу решить это? Спасибо.
РЕДАКТИРОВАНИЕ: (вот ваши запросы)
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
ИЗДАНО БОЛЬШЕ
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
хммм ... что это?
permissions
chmod
user1797147
источник
источник
ls
, не отображаются?ls: cannot access '/var/opt/gitlab/git-data/repositories/GL/www.git': Permission denied
так покажите нам, что происходит, когда выls -ld /var/opt/gitlab/git-data/repositories/GL/www.git
drwxr-x---
Ответы:
Это происходит потому, что в дереве есть каталог выше, где у вас нет разрешения на выполнение. Если родительский каталог не имеет разрешения на выполнение для какого-либо пользователя, то этот пользователь не может определять какие-либо подкаталоги независимо от разрешений для этих подкаталогов.
Пример:
Несмотря на то, что я являюсь владельцем каталога «Домовые» и все пользователи имеют разрешение на чтение и ввод, я не могу получить к нему доступ, если его родительский каталог не имеет разрешения на выполнение.
Лучше использовать группы для управления разрешениями, чем давать каталогам разрешение 777. Вы уверены, что вам нужно это сделать?
Как решить проблему более безопасным способом:
Давайте предположим, что в
/var/opt/gitlab
каталоге у вас есть что-то вроде этого:Добавьте себя и всех других пользователей, которым необходимо разрешение, в группу git, например:
Пользователи должны выйти и снова войти, чтобы это вступило в силу. Даже если разрешение на запись требуется в подкаталоге, вам, кстати, не нужно добавлять его в родительский каталог, поэтому вам вообще не нужно его использовать
chmod
. Возможно, вы захотите изменить разрешения своего подкаталога, чтобы запретить кому-либо писать в него:или
источник