Linux ACLを使用して、フォルダーへのデフォルトのアクセス権を持つ複数のグループを持つことができますか?異なるコーディンググループといくつかのプロセス間でコードリポジトリを共有するためにこれが必要です。私の考えでは、あるグループのユーザーが共有リポジトリ内にコンテンツを作成すると、所有者がそのユーザーであっても、デフォルトのアクセス許可がその新しいファイルに伝達され、他のユーザーは引き続きコンテンツにアクセスできます。
これが私がrootとして試したものです:
mkdir /tmp/temp chmod 770 /tmp/temp setfacl -dm g:www-data:rx、g:sambashare:rx/tmp/temp getfacl /tmp/temp #ファイル:temp #所有者:root #グループ:root user :: rwx group :: rwx other :: --- default:user :: rwx default:group :: rwx default:group:www- data:rx default:group:sambashare:rx default:mask :: rwx default:other :: ---
テストユーザーとして
id uid = 1004(testuser)gid = 1007(testuser)groups = 1007(testuser)、110(sambashare) cd /tmp/temp bash :cd:temp:アクセスが拒否されました
明らかに私が期待したように機能していません。なぜそれが機能しないのか、そしてどうすればこれを修正できるのかを誰かが理解するのを手伝ってもらえますか?
P.S.通常のグループ権限ではなく、デフォルトのグループ権限を設定しています。これらは子に伝達されることになっているためです。
setfacl -m g:sambashare:r-x/tmp/temp
ありがとう。
setfacl -Rdm g:www-data:r-x,g:sambashare:r-x /tmp/temp
とsetfacl -Rm g:www-data:r-x,g:sambashare:r-x /tmp/temp
を実行してみてください。オプションdは、新しいファイルとディレクトリのデフォルトを設定しますが、root:rootのみがアクセスできるように、既存の設定を変更しません。 -Rは、必要な変更を加えて既存のディレクトリを再帰的に下に移動するのに便利です。