差分
/* 現在の権限管理 */
== 現在の権限管理 ==
古典的なUNIXはUIDとGIDだけで説明は済みますが、Linuxも含めBSD 4.3以降で3以降では、もっと複雑な設定ができます。は、もっと複雑な設定ができます。Linuxでは、少なくとも4つタイプのUIDと4 つのGIDのタイプを持っています。Linuxでは4つタイプのUIDと4つのGIDのタイプを持っています。
* ユーザID、グループIDの種類
=== setuid ===
最初の表示にある-rwsr-x-rxのsがsetuid bitの意味です。つまり、これbitの意味です。らのコマンドは所有者がrootであり、かつ、このコマンドを動かすとrootの権つまり、これらのコマンドは所有者がrootであり、かつ、限で動かすことができるという意味です。この実行時は、ruidは利用者、euidこのコマンドを動かすとrootの権限で動かすことができるという意味です。がrootとなり、root権限のファイルなどに書き込むことができるようになりまこの実行時は、ruidは利用者、euidがrootとなり、す。一般ユーザでも何でもできる権限を手に入れてしまうということで、このroot権限のファイルなどに書き込むことができるようになります。ようなプログラムに誤りがあると大きなセキュリティ上の問題になります。一般ユーザでも何でもできる権限を手に入れてしまうということで、このようなプログラムに誤りがあると大きなセキュリティ上の問題になります。
=== setgid ===
setgidは、set group id bitの意味です。そのファイルのグループIDと同じ権限で実行できます。bitの意味です。そのファイルのグループIDと同じ権限で実行できます。
$ ls -l `find /usr/bin -perm +g+s -print`
....
RUID/RGID、EUID/EGID、SUID/SGIDを上手に変更することによって、どのユーSGIDを上手に変更することによって、どのユーザ権限で、ザ権限で、あるいはどのグループ権限でプロセスを動かし、適切にファイルやあるいはどのグループ権限でプロセスを動かし、適切にファイルや資源にアクセスできるようになることで、資源にアクセスできるようになることで、セキュリティを保つことができるよセキュリティを保つことができるようになります。うになります。これらの値のセットにはルールがあるので、全部はかけないですが、典型的なものを書き出してみます。これらの値のセットにはルールがあるので、全部はかけないですが、典型的なものを書き出してみます。
* RUID / EUID / SUIDの設定ルール
このように実行時のユーザIDを変えることができ、また一般ユーザでも実行ファイルに権限が附加されていれば、
root権限でプロセスを動かすこともできるなどかなり複雑な権限のコントロールが可能です。
もちろん、Linuxがコントロールが可能であることと、
アプリケーションがきちんと矛盾なく利用できるように設計できることとはまったく別のことです。
アプリケーションの設計が正しくなかったり、実装で間違えていると、セキュリティ侵害が発生することはいうまでもありません。
== パスワードファイル ==
匿名利用者