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

無料レッスン

アクセス制御と最小権限

このレッスンのあとで: 誰が何をしてよいかを、権限表にして決めることができる。

60分のレッスンコマンド10件Linux 管理のラボ:ユーザー、権限、cron、systemd をブラウザーで

アクセス制御は誰が何をしてよいかを決める

アクセス制御とは、誰がどの資産に何をしてよいかを決め、それを守らせる仕組みです。決め方の基本が、最小権限の原則です。

ある店で、入ったばかりのアルバイトに管理者の権限を与えました。慣れない操作で、顧客の一覧を消してしまいました。仕事に要る分だけ与えていれば、防げた事故です。

このレッスンのゴール

メモ

誰が何をしてよいかを、権限表にして決めることができる。

キーワード

ことばいみれい
アクセス制御誰が何をしてよいかを決めて、守らせる仕組み
最小権限仕事に要る分だけの権限を与えること
ロール仕事の役割ごとにまとめた権限のかたまりdevs
権限表誰が、何に、何をしてよいかを並べた表
既定で拒否書いていないことは、すべて許さない決め方
職務の分離1人に重要な作業を全部任せないこと

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

権限表は誰が、何に、何をを並べる

アクセス制御は、まず権限表にします。1行に、誰が、どの資産に、何をしてよいかを書きます。

何を、の欄は、読む(read)、書く(write)のように、操作の名前で書きます。表に書いていないことは、許されません。これが既定で拒否です。

3人の権限表の例

誰が何に読む書く
tanaka請求書許可許可
sato請求書許可なし
kato請求書なしなし

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

権限表をファイルで作ってみる

1行を「名前と操作」にした、小さな権限表のファイルを作ります。grep -c は、一致した行の数だけを表示します。

練習用のフォルダ

コマンド
mkdir -p accessdemo

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

権限表を書く

コマンド
printf 'tanaka read\ntanaka write\nsato read\n' > accessdemo/table.txt

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

tanaka の行を数える

コマンド
grep -c "^tanaka" accessdemo/table.txt

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

書く権利の行を数える

コマンド
grep -c "write" accessdemo/table.txt

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

最小権限は必要な分だけ与える

最小権限は、仕事に要る分だけを与え、それ以上は与えない決め方です。権限が小さければ、アカウントが乗っ取られても、ミスをしても、被害が小さく済みます。

進め方は、何も許さない状態から始めて、必要な権限を1つずつ足すことです。

よくある間違い

注意

「最初は広く許して、問題が出たら減らせばよい」と考える人が多くいます。でも、減らす機会は来ないことが多く、広い権限のまま残ります。何もない状態から、必要な分を足しましょう。

ロールで権限をまとめる

人ごとに権限を決めると、人が増えるたびに表が大きくなります。ロールは、役割ごとに権限をまとめたものです。

人にはロールを割り当てます。異動したら、ロールを替えるだけで、権限が正しく変わります。Linux のグループが、ロールの考え方に近いものです。

ロールの表を書く

コマンド
printf 'devs: read write\nstaff: read\n' > accessdemo/roles.txt

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

staff のロールを見る

コマンド
grep "^staff" accessdemo/roles.txt

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

Linux のモードも権限表

Linux のファイルのモードは、権限表の1行です。所有者、グループ、その他の3者に、読む、書く、実行する、を許すかを決めます。

640 なら、所有者は読み書き、グループは読むだけ、その他は何もできません。練習用のファイルで、確かめましょう。

練習用のファイル

コマンド
touch accessdemo/data.txt

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

グループは読むだけ

コマンド
chmod 640 accessdemo/data.txt

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

モードを文字で見る

コマンド
stat -c "%A %n" accessdemo/data.txt

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

共有フォルダの最初の状態を見る

このラボの /srv/projects は、チームの共有フォルダです。始めた直後は、root のものです。ラボを始めたばかりなら、次のように表示されます。

755 は、所有者に全部、グループとその他に読むと入ることを許します。チームだけに絞れているかは、考えてみてください。

共有フォルダの権限を見る

コマンド
stat -c "%a %A %U %G" /srv/projects

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

このラボとソースについて: Linux 管理のラボ:ユーザー、権限、cron、systemd をブラウザーで

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