FreeNASサーバーにgitサーバーを設定しようとしています。私が経験している問題は、私が望む方法で他のユーザー/グループの権限を設定することです。
基本的に私は2つの異なるグループを持っています。 1つには、すべてのリポジトリを含むディレクトリにアクセスgit-auth-user
できるすべてのユーザーが含まれています(私が考えているディレクトリに限定する必要がありますが、今は詳細にすぎません)、デフォルトではgitデーモンです。プロセスには読み取り専用アクセス権が必要です。rwx
x
git-unauth-user
setfacl -m "g:git-auth-user:rwx:fd:allow" git/
私は走ると私にすべての権利が与えられると思ったが、git-auth-user
そうではなかった。
検索してみると、クラシック権限はまだACLが割り当てることができる完全な権限を制限しているようです。これは基本的にothers
すべての権限を付与する必要があることを意味しますか(デフォルトではchmod 777 dir
)?しかし、私はACLを介して自分の権利が制限されていない誰もがフルアクセスを持っていると仮定していますが、これは明らかに私が望むものではありません。
other
ACLを介して配布する最も許可された権限でクラシック権限を設定する必要がある問題を解決する方法はありますか?そうでない場合、特別なアクセス権が付与されていないすべての人のアクセスを完全に拒否するACLはありますか?
編集する:
ls -la
(だからchmod 770
ディレクトリの場合)
drwxrwx---+ 2 root wheel 2 Jun 22 23:45 git
そして
$ getfacl git/
# file: git/
# owner: root
# group: wheel
group:git-auth-user:rwx-----------:fd----:allow
owner@:rwxp--aARWcCos:------:allow
group@:rwxp--a-R-c--s:------:allow
everyone@:------a-R-c--s:------:allow
今、このグループのユーザーが私が得たgit-auth-user
ディレクトリ内に新しいディレクトリを作成しようとするとgit
$ mkdir test.git
mkdir: test.git: Permission denied
一方、これを使用するとうまく機能しますが、誰もがディレクトリへのフルアクセスを許可するchmod -R 777 git
ため、明らかに非常に悪い解決策ですgit-auth-user
。git-ro
ディレクトリへのアクセス)ディレクトリにアクセスすると、ACLに基づいてそのユーザーに対するすべての権限を具体的に削除できますが、これは明らかに拡張されておらず、私が見落としている質問に対するより良い解決策が必要であると確信しています。
ベストアンサー1
ACLがある場合は、一般的なchmodビットをオーバーライドします。さらに、NFSv4 ACL にはマスクがありません。
ここでの問題は、「rwxp」ではなく「rwx」だけを設定したことです。 "p"はAPPEND_DATA/ADD_SUBDIRECTORYで、サブディレクトリの追加を制御します。