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

無料レッスン

ファイルをだれが読み書き実行できるか(権限)

このレッスンのあとで: 誰がファイルを読み、書き、実行できるかを言い、それを変えることができる。

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

誰でも開ける給与ファイル

小さな会社が、共有サーバに給与のファイルを置いていました。入社したばかりの人がフォルダを開くと、それが見つかりました。

ログインできる人なら、全員の給料を読めてしまいます。

誰も攻撃していません。ファイルの権限が間違っていただけです。このレッスンは、それを正しく直す練習です。

このレッスンのゴール

メモ

誰がファイルを読み、書き、実行できるかを言い、それを変えることができる。

キーワード

ことばいみれい
所有者そのファイルの持ち主になっている、1人のユーザー
グループファイルを共有するユーザーをまとめて、名前を付けたもの
その他所有者でもグループの一員でもない、すべての人
rootなんでもできる管理者のアカウント
sudo1つのコマンドだけを root として実行するsudo whoami
setgidフォルダの設定。中で作ったファイルがフォルダのグループになる2750

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

3種類の人と、3つの権利

どのファイルにも、所有者とグループがあります。それ以外の人がその他です。

この3種類ごとに、読む(r)、書く(w)、実行する(x)ことを許すかどうかが決まっています。

フォルダでは、r は中の一覧、w は中のファイルの追加と削除、x は中に入ることを表します。

自分は誰か

コマンド
id

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

フォルダのモードと持ち主を読む

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

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

例: モードの読み方

モード所有者はグループはその他は
rwxr-x---読む、書く、実行読む、実行何もできない
rw-rw-r--読む、書く読む、書く読むだけ
rw-------読む、書く何もできない何もできない
rwxr-xr-x読む、書く、実行読む、実行読む、実行

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

chmod でモードを変える

chmod はモードを変えます。chmod 640 payroll.txt のように、3桁の数字で渡せます。

足すものや引くものを言う書き方もあります。g+w はグループに書く権利を足します。o-r はその他から読む権利を引きます。

順に実行しましょう。ls -l を打つたびに、新しいモードが見えます。

空のファイルを作る

コマンド
touch payroll.txt

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

所有者は読み書き、グループは読む

コマンド
chmod 640 payroll.txt

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

モードを見る

コマンド
ls -l payroll.txt

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

グループにも書かせる

コマンド
chmod g+w payroll.txt

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

もう一度見る

コマンド
ls -l payroll.txt

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

よくある間違い

注意

「permission denied と出たら、chmod 777 で直る」と考える人が多くいます。でもそれは、マシンの全ユーザーがファイルを書き換えられる状態です。誰に権利が必要かを調べて、その所有者かグループにだけ与えましょう。

ユーザー、root、sudo

人にもサービスにも、ユーザーのアカウントがあります。ふつうのユーザーが他の人のファイルを開けるのは、そのファイルのモードが許すときだけです。システムの大事なファイルは、ふつう書き換えられません。

root はなんでもできます。1日中 root で作業してはいけません。sudo は、1つのコマンドだけを root で実行します。終われば、またふつうのユーザーです。

ふつうのユーザーは断られる

コマンド
ls /root

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

同じユーザーが sudo を付ける

コマンド
sudo whoami

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

ファイルを root のものにする

コマンド
sudo chown root payroll.txt

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

所有者を見る

コマンド
ls -l payroll.txt

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

自分に戻す

コマンド
sudo chown student payroll.txt

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

共有フォルダにはグループと setgid

チームでフォルダを共有します。たとえば sales というグループを作り、usermod -aG sales 名前 でメンバーを入れます。

フォルダのグループは chgrp で決めます。そのあとで、グループに許すことを決めます。

setgid を足します。2750 の先頭の 2 です。こうすると、誰が作ったファイルも、フォルダのグループに入ります。

練習用のフォルダを作る

コマンド
mkdir -p teamdemo

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

setgid、グループは読んで入れる、その他はなし

コマンド
chmod 2750 teamdemo

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

s を探す

コマンド
ls -ld teamdemo

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

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

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