StickyBits NFSv4 ACL は、ユーザーがフォルダを移動できないようにします。

StickyBits NFSv4 ACL は、ユーザーがフォルダを移動できないようにします。

バックグラウンドストーリー:クライアントには、POSIXとNFSv4が混在した環境があります。 POSIXは、タッチまたは操作が実行されるたびにデフォルトのNFSv4 ACLを停止します。彼らは、NFSv4 ACLで削除パラメータがオフになっても、ユーザーがあるフォルダを別のフォルダに移動できることを示しました。移動が削除されるのと同じです。

その後、クライアントはフォルダにchmod 1755を試みますが、ファイルはまだ移動できます。

ファイルの親ACLは次のとおりです。

#NFSv4 ACL
#owner:root
#group:root
special:owner@:rwxc:allow
 (X)READ/LIST (X)WRITE/CREATE (X)APPEND/MKDIR (X)SYNCHRONIZE (X)READ_ACL  (X)READ_ATTR  (X)READ_NAMED  
 (-)DELETE    (X)DELETE_CHILD (X)CHOWN        (X)EXEC/SEARCH (X)WRITE_ACL (X)WRITE_ATTR (X)WRITE_NAMED

special:group@:rwx-:allow
 (X)READ/LIST (X)WRITE/CREATE (X)APPEND/MKDIR (X)SYNCHRONIZE (X)READ_ACL  (X)READ_ATTR  (X)READ_NAMED
 (-)DELETE    (X)DELETE_CHILD (-)CHOWN        (X)EXEC/SEARCH (-)WRITE_ACL (-)WRITE_ATTR (-)WRITE_NAMED

special:everyone@:rwx-:allow
 (X)READ/LIST (X)WRITE/CREATE (X)APPEND/MKDIR (X)SYNCHRONIZE (X)READ_ACL  (X)READ_ATTR  (X)READ_NAMED
 (-)DELETE    (X)DELETE_CHILD (-)CHOWN        (X)EXEC/SEARCH (-)WRITE_ACL (-)WRITE_ATTR (-)WRITE_NAMED

この親フォルダにテストディレクトリを作成すると、次のNFSv4 ACLが表示されます。

#NFSv4 ACL
#owner:root
#group:root
special:owner@:rwxc:allow
 (X)READ/LIST (X)WRITE/CREATE (X)APPEND/MKDIR (X)SYNCHRONIZE (X)READ_ACL  (X)READ_ATTR  (X)READ_NAMED
 (-)DELETE    (X)DELETE_CHILD (X)CHOWN        (X)EXEC/SEARCH (X)WRITE_ACL (X)WRITE_ATTR (X)WRITE_NAMED

special:group@:r-x-:allow
 (X)READ/LIST (-)WRITE/CREATE (-)APPEND/MKDIR (X)SYNCHRONIZE (X)READ_ACL  (X)READ_ATTR  (X)READ_NAMED
 (-)DELETE    (-)DELETE_CHILD (-)CHOWN        (X)EXEC/SEARCH (-)WRITE_ACL (-)WRITE_ATTR (-)WRITE_NAMED

special:everyone@:r-x-:allow
 (X)READ/LIST (-)WRITE/CREATE (-)APPEND/MKDIR (X)SYNCHRONIZE (X)READ_ACL  (X)READ_ATTR  (X)READ_NAMED
 (-)DELETE    (-)DELETE_CHILD (-)CHOWN        (X)EXEC/SEARCH (-)WRITE_ACL (-)WRITE_ATTR (-)WRITE_NAMED

この新しいディレクトリにテストファイルを作成すると、次のNFSv4 ACLが表示されます。

#NFSv4 ACL
#owner:root
#group:root
special:owner@:rw-c:allow
 (X)READ/LIST (X)WRITE/CREATE (X)APPEND/MKDIR (X)SYNCHRONIZE (X)READ_ACL  (X)READ_ATTR  (X)READ_NAMED
 (-)DELETE    (-)DELETE_CHILD (X)CHOWN        (-)EXEC/SEARCH (X)WRITE_ACL (X)WRITE_ATTR (X)WRITE_NAMED

special:group@:r---:allow
 (X)READ/LIST (-)WRITE/CREATE (-)APPEND/MKDIR (X)SYNCHRONIZE (X)READ_ACL  (X)READ_ATTR  (X)READ_NAMED
 (-)DELETE    (-)DELETE_CHILD (-)CHOWN        (-)EXEC/SEARCH (-)WRITE_ACL (-)WRITE_ATTR (-)WRITE_NAMED

special:everyone@:r---:allow
 (X)READ/LIST (-)WRITE/CREATE (-)APPEND/MKDIR (X)SYNCHRONIZE (X)READ_ACL  (X)READ_ATTR  (X)READ_NAMED
 (-)DELETE    (-)DELETE_CHILD (-)CHOWN        (-)EXEC/SEARCH (-)WRITE_ACL (-)WRITE_ATTR (-)WRITE_NAMED
  1. NFSv4 ACL = MODE4_SVTXに固定ビットを適用すると、役に立つと思われる次のものが見つかりました。これを既存のNFSv4 ACLに直感的に統合するにはどうすればよいですか?いったんそれを見つけた後は、引き続き木の下に押し出すことができました。

  2. これらのフォルダを別のフォルダに移動できるようにすることはACLの子削除要素ですか?

目的:NFSv4 ACLで固定ビットを許可して、ファイル所有者以外の誰かがファイルを移動/削除するのを防ぐ方法を見つけます。

追加情報:

2つのアクセスマスクビットは、ディレクトリエントリを削除する機能を制御する。オブジェクト自体(「ターゲット」)のACE4_DELETEとインクルードディレクトリ(「親」)のACE4_DELETE_CHILD。多くのシステムでは、ディレクトリに「固定ビット」(MODE4_SVTX)を使用して、一部のシステムでターゲットまたは親を所有しているユーザーにのみ切断を許可します。決定は、ターゲットが書き込み可能かどうかに依存します。

ターゲットでACE4_DELETEが許可されている場合、または親でACE4_DELETE_CHILDが許可されている場合、サーバーは切断を許可する必要があります。 (親またはターゲットがこれらの権限のいずれかを明示的に拒否した場合も同様です。)

問題のACLが上記を明示的に許可または拒否せず、MODE4_SVTXが親エントリに設定されていない場合、サーバーはACE4_ADD_FILEが許可されている場合にのみ削除を許可する必要があります。 MODE4_SVTXが設定されている場合、サーバーは削除者に親または宛先が必要な場合、または宛先に書き込み可能であることを要求することもあります。

これにより、サーバーは、書き込みビットの代わりにACE4_ADD_FILEを使用して、既存のUNIXセマンティクスと同様の機能をサポートできます。

ベストアンサー1

おすすめ記事