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でもLSに許可がありませんか?開発をより便利にするために、このフォルダーを共有する必要があります。どうすれば解決できますか?ありがとうございました。
編集済み:(リクエストはこちら)
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
うーん...これは何ですか?
これは、実行権限のないツリーの上位にディレクトリがあるために発生します。親ディレクトリに一部のユーザーの実行権限がない場合、そのユーザーは、それらのサブディレクトリの権限に関係なく、サブディレクトリを統計できません。
例:
$ ls -l cake
drwxr-xr-x 2 zanna zanna 4096 Jul 12 11:43 brownies
$ chmod 666 cake
$ ls -l cake/brownies
ls: cannot access 'cake/brownies': Permission Denied
私はディレクトリ「brownies」の所有者であり、すべてのユーザーが読み取りと入力の許可を持っていますが、その親ディレクトリに実行許可がない場合はアクセスできません。
許可を管理するには、ディレクトリ777に許可を与えるよりも グループを使用 の方が適切です。本当にそうする必要がありますか?
より安全な方法で問題を修正する方法:
/var/opt/gitlab
ディレクトリに次のようなものがあると仮定しましょう。
drwxr-x--- 5 git git 4096 aug 14 17:30 gitlab
自分とgitグループへのアクセス許可が必要な他のすべてのユーザーを追加します。次に例を示します。
Sudo usermod -a -G john git
これを有効にするには、ユーザーはログアウトして再度ログインする必要があります。サブディレクトリに書き込み権限が必要な場合でも、親ディレクトリに追加する必要はありません。そのため、chmod
を使用する必要はまったくありません。サブディレクトリのアクセス許可を変更して、誰も書き込みできないようにすることができます。
chmod 775 /var/opt/gitlab/git-data/repositories/GL/www.git/custom_hooks
または
chmod o-w /var/opt/gitlab/git-data/repositories/GL/www.git/custom_hooks