クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

最小権限の原則とは

このレッスンのあとで: 小さな設定ミスが管理者の権限につながる理由を、説明することができる。

45分のレッスンコマンド2件Linux 権限昇格のラボ:setuid のバイナリ、sudo のルール、cron のジョブ

小さなミスで管理者になられる

最小権限の原則とは、人やプログラムに、仕事に必要な最小限の権限だけを与える、という考え方です。権限が大きすぎると、小さなミスが、全体の乗っ取りにつながります。

今日は、権限のしくみと、ありがちな設定ミスを学びます。ラボは、自分専用の仮想マシンです。その中だけを見ます。

このレッスンのゴール

メモ

小さな設定ミスが管理者の権限につながる理由を、説明することができる。

キーワード

ことばいみれい
権限何をしてよいかという許可
最小権限必要な権限だけを与えること
rootLinux のすべてができる管理者のアカウント
パーミッションファイルを読む、書く、実行する許可644
権限昇格低い権限から、高い権限を手に入れること

学生が入力するセルは、このプレビューでは空白です。

守るべき約束はひとつ

注意

ここで見るのは、自分専用の仮想マシンの中だけです。他人のマシンの権限を探したり、許可なく試したりしてはいけません。許可のないことは、法律に反します。上のバーの Start the lab を押します。

パーミッションは3つの数字で書く

Linux のファイルには、持ち主、グループ、それ以外の人の3組に、権限がつきます。読む(4)、書く(2)、実行する(1)を足した数で表します。

644 は、持ち主が読み書き(6)、ほかは読むだけ(4)という意味です。

例: 数字と許可の対応

数字読む書く実行意味
7421すべてできる
642-読み書きできる
54-1読んで実行できる
44--読むだけ

学生が入力するセルは、このプレビューでは空白です。

ラボで、標準の権限を読む

自分がだれかと、ふだん使われる大切なファイルの権限を見ます。見るだけで、変えません。

whoami は、いまのアカウント名を表示します。stat は、ファイルの権限や持ち主を表示します。

自分のアカウント名を見る

コマンド
whoami

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

3つのファイルの権限を見る

コマンド
stat -c '%a %n' /etc/passwd /etc/shadow /usr/bin/passwd

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

強すぎる権限が事故のもと

大切なファイルは、書ける人を限ります。パスワードのハッシュを入れた /etc/shadow は、一般の人が読めないようになっています。

先頭の4は、setuid といい、そのファイルを実行した人が、持ち主の権限で動かせる、という特別な印です。

例: 危ない設定の見分け方

設定何が危ないか直し方
だれでも書ける実行ファイル(777)中身を書きかえられ、管理者の権限で動くことがある必要な人だけが書ける設定にする(755)
不要な setuid(4755)本来より強い権限で動く道が開く必要なものだけに限る
パスワードなしの管理者の許可1つ破られると、そのまま管理者になる許可を最小にし、パスワードを求める

学生が入力するセルは、このプレビューでは空白です。

よくある間違い

注意

「面倒だから、とりあえずだれでも書けるようにしておこう」と考える人がいます。その場しのぎの設定は、そのまま残りがちです。必要な人だけに、必要なだけ与えます。

最小権限は、被害を小さくする

最小権限の原則は、破られることを前提にします。1つのアカウントが乗っ取られても、できることが少なければ、被害は小さいままです。

方法は3つあります。必要な権限だけ与える。使わなくなった権限を、すぐ外す。ふだんは、管理者のアカウントを使わない。

例: 最小権限の習慣

場面悪い例よい例
学校のパソコン全員が管理者生徒は一般のアカウント
アプリの設定全部の権限を許す使う権限だけ許す
卒業した人アカウントが残るすぐに無効にする

学生が入力するセルは、このプレビューでは空白です。

さらに挑戦: 直すとしたら

ラボの仮想マシンには、管理者が残した、ふつうの設定ミスがあります。ラボの説明に従い、自分のマシンの中で、どれか1つを探してください。

見つけたら、何が弱点で、どう直すと、最小権限に近づくかを書きます。直すのは、自分のマシンだけです。

このラボとソースについて: Linux 権限昇格のラボ:setuid のバイナリ、sudo のルール、cron のジョブ

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。