777フォルダーで許可が拒否されました


17
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

うーん...これは何ですか?


1
使用しているディレクトリの権限がls表示されていませんか?
ザンナ

はcustom_hooksであり、drwxrwxrwx 2ルートルートがあります。上記を参照してください
user1797147

1
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
ザンナ

1
私が尋ねたことをしてください。あなたは、この1の777はあなたを助けにはなりません親ディレクトリに実行権限を持っていない場合
Zanna

2
どうやらあなたの問題はツリーの上位にあるようです。レベルを上げてアクセス許可を調べてみてください。たとえば、そのうちの1つにoのxアクセス許可がないことがわかります。たとえば、drwxr-x---
Zanna

回答:


21

これは、実行権限のないツリーの上位にディレクトリがあるために発生します。親ディレクトリに一部のユーザーの実行権限がない場合、そのユーザーは、それらのサブディレクトリの権限に関係なく、サブディレクトリを統計できません。

例:

$ 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

1
ありがたいことに、いいえ、スクリプトをテストしていました。初歩的なGeditよりも、WindowsでN ++を使用して編集する方がはるかに快適です。また、基本的なNautilusは、何かをカットしてから、同時に新しいフォルダーを作成して貼り付けることができません...または右クリック->新しいフォルダー。
-user1797147
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.