POSIX.1eはPOSIX のACL ( Access Control List ) メカニズムを (他のセキュリティ関連の問題とともに) 定義しようとしていましたが、提案が正式な標準に変換されることはありませんでした。それにもかかわらず、ACL (必ずしも POSIX.1e ACL である必要はありません) は、少なくともオプションとして、Unix のすべての主要なバリアント ( Linux、BSD、MacOS X (ACL)、HP-UX、AIX (p107ff)、Solaris ) でサポートされています。まだ議論されていない詳細の 1 つは、ファイルの ACL がディレクトリのスティッキー ビットとどのように相互作用するかということです。
通常のディレクトリ (問題を混乱させる ACL がない) では、パーミッションをたとえば 1777 (たとえば /tmp にあります) に設定できます。
drwxrwxrwt 16 root sys 4819 May 4 12:09 /tmp
スティッキー ビットは、パーミッションの最後の位置にある「t」で示されます。これは、ユーザーがファイルに書き込みできる場合にのみ、ユーザーがディレクトリからファイルを削除できることを意味します。意味あり; ユーザーがファイルに書き込むことができる場合、ファイルの内容が破壊される可能性があります。
私の質問は:
- /tmp ディレクトリの一般的な (ACL 以外の) アクセス許可が上図のようになっているとします。
- さらに、偏執狂的なユーザー 'trembler' が、ファイルに対する非 ACL パーミッション
/tmp/secret
を 600 に設定したとします (ユーザー 'trembler'、グループ 'worried')。 - 'trembler' が /tmp/secret の 'rw' アクセス権を別のユーザー 'blase' に、'blase' を具体的に引用する ACL を介して付与するとします。
- ファイルを「blase」で削除できますか
/tmp/secret
ACL が考慮されている場合、答えは「はい」になります。ACL が無視される場合、答えは「いいえ」になります。関連するファイル システムで ACL が有効になっていると仮定すると、動作はすべての Unix バリアントで統一されていますか?