ファイルの権限とは何か
ファイルの権限とは、そのファイルを読む、書き換える、動かす操作を、だれに許すかの決まりです。学校の共有フォルダで、先生だけが書き換えられるのも権限のおかげです。
サーバーには何人も入るので、権限を正しく決めないと、大事なファイルを消されてしまいます。
このレッスンのゴール
メモ
ファイルの権限を読み、「rwxr-x---」のような表記を数字で表すことができる。
キーワード
| ことば | いみ | れい |
|---|---|---|
| ユーザー | コンピュータを使う人ごとの名前 | |
| グループ | ユーザーをまとめた集まり | |
| 所有者 | そのファイルの持ち主のユーザー | |
| 権限 | ファイルに対して許された操作 | |
| r、w、x | 読む、書く、実行するの3つの権限 | |
| 管理者 | どのファイルも変えられる特別なユーザー | root |
学生が入力するセルは、このプレビューでは空白です。
始める前に
メモ
上のバーの Start the lab を押し、マシンが動き出すまで待ってください。このレッスンの Run は、見るだけです。ラボの課題そのものは、レッスンのあとで自分で行います。
ファイルには持ち主がいる
ファイルには、持ち主のユーザーと、持ち主のグループが決まっています。それ以外の人は「その他」と呼ばれます。
つまり権限は、「所有者」「グループ」「その他」の3つの立場に、それぞれ決まります。
自分のユーザー名を見る
whoamiここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
共有フォルダの持ち主を見る
stat -c '%A %U %G' /srv/projectsここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
スクリプトの権限を見る
stat -c '%A %U' /usr/local/bin/backup.shここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
例: 権限の文字を読む
| 表示 | 種類 | 所有者 | グループ | その他 |
|---|---|---|---|---|
| drwxr-xr-x | フォルダ | rwx | r-x | r-x |
| -rwxr-xr-x | ファイル | rwx | r-x | r-x |
| -rw-r----- | ファイル | rw- | r-- | --- |
学生が入力するセルは、このプレビューでは空白です。
権限は数字でも書ける
r は4、w は2、x は1という数に決まっています。1つの立場の権限は、その数を足して1けたで書きます。
所有者、グループ、その他の順に3けた並べると、権限全体になります。たとえば rwx は 4+2+1 で7です。
例: rwxr-x--- を数字にする
| 立場 | 文字 | 計算 | 数字 |
|---|---|---|---|
| 所有者 | rwx | 4 + 2 + 1 | 7 |
| グループ | r-x | 4 + 0 + 1 | 5 |
| その他 | --- | 0 + 0 + 0 | 0 |
学生が入力するセルは、このプレビューでは空白です。
権限を数字で見る
stat -c '%a %A' ~/README.mdここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
権限を変えるには
権限を変えるのは chmod、持ち主を変えるのは chown です。新しいユーザーを作るのは useradd で、グループに入れるのは usermod です。
どれも管理者の力が要るので、sudo を前に付けます。次の例は、読むだけの説明で、ここでは実行しません。
例: 権限を変える命令
# 所有者は読み書き、グループは読むだけ、その他は何もできない
sudo chmod 640 report.txt
# 持ち主のグループを devs に変える
sudo chown :devs report.txtよくある間違い
注意
うまく動かないとき、chmod 777 にすれば解決すると考える人がよくいます。777 は、だれでも書き換えられる状態です。必要な人にだけ、必要な権限を与えてください。
さらに挑戦: フォルダの x
フォルダでは、x は「中に入れる」という意味です。r だけで x がないフォルダは、名前の一覧は見えても、中のファイルを開けません。
rw- のフォルダと r-x のフォルダでは、どちらが中のファイルを開けるでしょうか。理由も考えてください。