回答編集履歴

2 補足

KSwordOfHaste

KSwordOfHaste score 17343

2017/04/20 09:31  投稿

- rootの権限をもつSUID付きのプログラムはrootにしか作れない
- 充分セキュリティーに配慮したSUID付きプログラムがあればroot以外にも使用を許せる
というふうに**セキュリティーと使い勝手を両立**することができるという意味合いだと思います。
というふうに**セキュリティーと使い勝手を両立**することができるという意味合いだと思います。
---
補足:少し仕組み的なところを捕捉します(既にご存知ならスルーしてください。)
- OS以外のプログラムは全てプロセスの中で動く
- プロセスにはEUID(実効ユーザーID)とEGID(実効グループID)という属性がありこれらによりそのプロセス内で動いているプログラムの権限が決まる
- bashなどからコマンドを打ち込むと(ビルトインコマンド以外は)新しいプロセスが作られてその中で実行される
- 新プロセスが作られるとき親プロセスのEUID,EGIDが引き継がれる。
- プログラムファイルのsetuid/setgid属性がついてない場合
新プロセスでそのようなプログラムファイルを実行するとプロセスのEUID,EGIDは変化しません。(この仕組みによってあらゆるプログラムがloginユーザーの権限で動きます。)
- プログラムファイルのsetuid/setgid属性がついている場合
新プロセスでそのようなプログラムファイルを実行するとsetuidがついているならEUIDはプログラムファイルのオーナーのuidに置き換わります。setgid/EGIDも同様です。この仕組みにより(充分にセキュリティーに配慮した特別なプログラムに限って)非特権ユーザーが一時的に特権ユーザーの権限によりプログラムを動かすことができます。
1 用語変更

KSwordOfHaste

KSwordOfHaste score 17343

2017/04/19 20:55  投稿

- rootの権限をもつSUID付きのプログラムはrootにしか作れない
- 充分セキュリティーに配慮したSUID付きプログラムがあればroot以外にも使用を許せる
というふうに**セキュリティーと可用性を両立**することができるという意味合いだと思います。
というふうに**セキュリティーと使い勝手を両立**することができるという意味合いだと思います。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る