このファイルファイルACLについては、シールドメカニズムがこれを解決することが言及されています。
...ACLがサポートされている場合、ACLを認識しないPOSIX.1アプリケーションは突然追加の許可を開始しません。
この状況の例は何ですか?
システム管理者がこれらの意図に従って拡張ACL設定を含むファイルを持っている場合:
- ファイル所有者に
rwx
権限が必要です。 - ファイルグループのユーザーはアクセス権を持ってはいけません(
---
)。 ---
他の人は()にアクセスできません。- 上記の3つの例外は、システムグループにファイルに対する
audit
権限があることです。r--
ファイルに対応する拡張ACLは次のとおりです。
# file: path/to/file
# owner: foo
# group: bar
user::rwx
group::---
group:audit:r--
mask::r--
other::---
この例では、mask
メカニズムが適切でなく拡張ACLを認識しないツールがグループ権限を--x
(strawmanパラメータ)に変更しようとすると、エントリに「誤って」がgroup::
発生します。group::--x
..追加の許可" "?
# file: path/to/file
# owner: foo
# group: bar
user::rwx
group::--x
group:audit:r--
other::---
私が理解したのは、所有グループのユーザーがaudit
実行可能になるのではなく、所有グループのユーザーが持つことです。このグループにはあるが自分が属するグループにはないユーザーaudit
はそうではありません。両方のユーザーグループが実行機能を取得します。なぜmask
必要なのか理解できません。
何か間違って理解したことがあれば説明してください。私のわら男は、引用文が言う状況を説明できないかもしれません。このような場合は状況を説明してください。
答え1
マスクとビットへの接続がない場合は、さまざまな標準操作を実行し、ACLではなく以前のUnixで伝統的に動作することを期待しているS_IRWXG
アプリケーションを使用すると、膨大なセキュリティホールが残ったり、次のようなことがわかります。セキュリティの脆弱性に関するアイデアを見てください。chmod()
chmod()
- 従来のUnixアプリケーションは、ファイル、名前付きパイプ、デバイス、またはディレクトリへのすべてのアクセスを拒否できるようにしたいです
chmod(…,000)
。 ACLがあると、この機能はオフになります。みんなユーザーとグループの権限(以前のS_IRWXG
マスクにマップされている場合)これがないと、以前のファイル権限を設定しても000
特定のユーザー/グループのACLエントリに影響を与えず、驚くべきことに他のユーザー/グループがまだオブジェクトにアクセスできます。ファイルの許可ビットをアクセス禁止に一時的に変更して
chmod 000
再度変更することは、Unixがアドバイザリロックメカニズムを持つ前に使用されていた古いファイルロックメカニズムです。- ご覧のとおり、人々は今日でもそれを使用しています。。 - 既存のUnixスクリプトは実行されると予想され、
chmod go-rwx
最終的にオブジェクトの所有者だけがオブジェクトにアクセスできます。再び- ご覧のとおり - これは依然として受け入れられる知恵です。今でもUnix ACLが発明されてから数十年が経ちました。繰り返しますが、S_IRWXG
以前のマッピングがマスク用ではない場合、このコマンドは機能しません。そうしないと、コマンドはchmod
特定のユーザー/グループのACLエントリを閉じないため、所有者以外のユーザー/グループにはどのアクセス権にもアクセス権があります。楽しみですねアクセスしやすいただ所有者に。 - ほとんどの場合、
and
権限ビットがACLから分離されて編集されるシステムにはファイル権限フラグが必要ですrwxrwxrwx
。これは、世界的に書き込み可能であると思うものを見る多くのUnixアプリケーションを混乱させます。許可ビットがACLと分離されているため、ACLで使用されるシステムは前述の問題に
or
直面します。chmod(…,000)
追加読書
- クレイグ・ルビン(1989-08-18)。 Unixシステムのアクセス制御リスト機能選択の理論的根拠。 NCSC-TG-020-A.ダイアン出版。 ISBN 9780788105548。
- IEEEコンピュータ協会ポータブルアプリケーション標準委員会(1997年10月)。 情報技術標準ドラフト - POSIX(ポータブルオペレーティングシステムインタフェース) - パート1:システムアプリケーションプログラミングインタフェース(API) - 修正#:保護、監査、および制御インタフェース[C言語] IEEE 1003.1e.ドラフト 17.
- https://unix.stackexchange.com/a/406545/5132