ディレクトリ内の特定のユーザーへのすべての書き込みアクセスを無効にする方法はありますか?

ディレクトリ内の特定のユーザーへのすべての書き込みアクセスを無効にする方法はありますか?

私は最近、ACLとsetfacl各ユーザーのアクセス権を設定する方法を学びました。ただし、実装方法がわからないことの1つは、特定のディレクトリ内の特定のユーザーへのすべての書き込み(*)アクセスを制限することです。そして中のすべて

つまり、ユーザーsome_userとディレクトリsome_dirchmod 777 some_dir使用すると仮定)を考慮します。some_user書き込みアクセスを制限する方法はありますか?いいえ他のアクセス権some_dirとすべてのコンテンツを変更しますか?

私が試したこと/思ったこと:

  • setfacl -R -m u:some_user:rx some_dir/some_userユーザーが以前に読み取れなかったファイルへの読み取りアクセスを許可し、ユーザーが以前に実行できなかったファイルへの実行アクセスを許可しているため、成功しません。
  • (私の知る限り)マスクを1人のユーザーに特定にする方法がないので、マスクを再帰的r-xに設定してもsome_dirそうはなりません。setfacl

ACL文書を見た後、この方向を指すものが見つからなかったため、明らかにこの目的のためにACLを使用する方法を探しているわけではありません。

(*)または読み取りまたは実行アクセス - どちらかは重要ではありませんが、簡単にするために書き込みアクセスに固執します。

答え1

これで、ユーザーp3にaclを適用する前に、誰もがディレクトリk2へのフルアクセス権を持っています。

 mkdir k2

 chmod 777 k2
getfacl k2
# file: k2
# owner: praveen
# group: praveen
user::rwx
group::rwx
other::rwx

次に、ユーザp3の書き込みアクセスをディレクトリk2に制限します。

 setfacl -m u:p3:rx k2
$ getfacl k2
# file: k2
# owner: praveen
# group: praveen
user::rwx
user:p3:r-x    =====> user p3  have only read and execute acess not write
group::rwx
mask::rwx
other::rwx

関連情報