ユーザーディレクトリを次のように作成したいと思います。
- ユーザーはファイルを一覧表示できます。
- ユーザーがファイルを読み取ることができます。
- ユーザーはファイルを削除できます
- ユーザーはファイルを追加できません。
- (理想的には、ユーザーはファイルを変更することはできません。
権限とxattrsを使用してこれを行う方法が見つかりません。どんなアイデアがありますか?使用されるファイルシステムのタイプはNFS v3およびGPFSです。オペレーティングシステムはRHEL 7 Linuxです。
答え1
ファイルセットクォータを使用してこの問題を解決できます。ディレクトリをファイルセットにします。
cd /gpfs/gpfs0/subdirectoryY/
mmcrfileset gpfs0 testfileset
mmlinkfileset gpfs0 testfileset
必要なすべてのファイルを作成し、ファイルセットのファイル数クォータを1に設定します。
# mmsetquota gpfs0:testfileset --files 1:1
デフォルトでは、ルートはクォータを超える可能性があるため、ルートはここでファイルを作成できますが、他のファイルは拒否されます。
# touch testfileset/file1 testfileset/file2 testfileset/file3
# chown nobody testfileset
# sudo -u nobody touch testfileset/file4 testfileset/file5 testfileset/file6
touch: cannot touch 'testfileset/file4': Disk quota exceeded
touch: cannot touch 'testfileset/file5': Disk quota exceeded
touch: cannot touch 'testfileset/file6': Disk quota exceeded
残りはちょうど一般的なファイル権限です。