差分

ユーザ権限とアクセス制御

144 バイト追加, 2024年2月1日 (木)
/* 実行権限を限定させる */
またユーザは1つデフォルトのグループID(GID / GroupIDentifier)がつけられています。
そのユーザIDやグループIDが条件に合致するかどうかでユーザに権限があるかどうかを判断しています。
<ref>
RED HAT ENTERPRISE LINUX Identity Management ガイド
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/identity_management_guide/index
</ref>
</pre>
 
=== 実行権限を限定させる ===
ruidがrootの時、つまりrootがファイルを実行した時は何でもできるので、euidをプロセス内で制限なく変更できます。
もちろん、Linuxがコントロールが可能であることと、
アプリケーションがきちんと矛盾なく利用できるように設計できることとはまったく別のことです。
アプリケーションの設計が正しくなかったり、実装で間違えていると、セキュリティ侵害が発生することはいうまでもありません。アプリケーションの設計が正しくなかったり、実装で間違えていると、セキュリティ侵害が発生する<ref>POS37-C. 権限の破棄は確実に行う 【[https://www.jpcert.or.jp/sc-rules/c-pos37-c.html JPCERT/CCサイトへ]】</ref>ことはいうまでもありません。
=== なるべくrootでは動かさない運用 ===
=== ディレクトリにsetgidビットを設定する ===
ディレクトリのグループにsetuidビットを設定すると、そのディレクトリ以下に作られるファイル及びディレクトリには現ディレクトリのグループが適用されます。ディレクトリのグループにsetgidビットを設定すると、そのディレクトリ以下に作られるファイル及びディレクトリには現ディレクトリのグループが適用されます。
<pre class="bash">
</pre>
ディレクトリ foo に対しsetuid ビットの設定を行います。setuid に対しsetgid ビットの設定を行います。setgid ビットがセットされるとグループの"x"だった部分が"s"に変化します。
次にコマンド touch で fileB を作成します。
ディレクトリのグループ hironobu がファイルに継承されて fileB の所有者は root グループが hironobu になります。
UNIXでは自分以外のユーザにアクセスを許可する場合は、グループに許可するか、それともすべてのユーザに許可するかの大まかな条件でアクセス制御をしています。一方、ACLではアクセス許可を特定のユーザの単位で、あるいはグループ単位で設定できます。ACLの導入により、これまでのUNIXのアクセス制御よりも現敵的な設定をすることが可能になります。UNIXでは自分以外のユーザにアクセスを許可する場合は、グループに許可するか、それともすべてのユーザに許可するかの大まかな条件でアクセス制御をしています。一方、ACLではアクセス許可を特定のユーザの単位で、あるいはグループ単位で設定できます。ACLの導入により、これまでのUNIXのアクセス制御よりも限定的な設定をすることが可能になります。
openSUSE
<ref>
openSUSE 第15章 Linuxのアクセス制御リスト20 Linux でのアクセス制御リストhttps://www.susebelbel.comor.jp/jaopensuse-jp/documentation/sles10/book_sle_reference/datamanuals_ja/cha.-security-acls.html</ref>
やRadHat
<ref>
Storage Administration Guide第19章 システム管理者のガイド 第5章 アクセス制御リストhttps://access.redhat.com/site/documentation/ja-JPjp/Red_Hat_Enterprise_Linuxred_hat_enterprise_linux/67/html/Storage_Administration_Guidesystem_administrators_guide/ch-acls.html</ref>やTurbolinux<ref>Turbolinux 11 Server: ユーザーガイド 第 40章Posix ACL(Access Control List)http://www.turbolinux.co.jp/products/server/11s/user_guide/c15067.htmlaccess_control_lists
</ref>
などのACLに関する運用ドキュメントが参考になります。