シェル vol.3
目標:パーミッションを理解すること。
パーミッションは許可属性。
読む、書く、実行の設定をするための仕組み。
昔は一台のコンピュータを共有していたためこのような仕組みが生まれた。
現代では、書き間違えを防いだりするのに必要なので理解する。
touch・・・新しいファイルを作る。
新しいファイルを作る。もうあるファイルの場合はタイムスタンプを更新する。
touch test
open・・・ファイルを開く
ファイルを開く
open test.txt
-rw-r--r-- 1 shota staff 0 4 6 11:24 memo.txt
パーミッションの指定
最初の一文字から先がパーミッション
3つづつ分類、u(所有者),g(グループ),o(その他)の順で書かれている。
r | 読めます | 4 |
w | 書き込める | 2 |
x | プログラムとして実行できる | 1 |
数字は足し算なので・・・
-rw-r--r-- | 644 |
rwxrwxr-x | 775 |
となる。
ファイルのパーミッション
chmod・・・パーミッションの変更
chmod g+w memo.txt
上の例はmemo.txtの属性をグループでも書き込めるように変更した。
chmod go-r important.txt
上の例はimportant.txtの属性をグループ、その他が読めないようにした。
-rw------- 1 shota staff 0 4 6 11:34 important.txt -rw-rw-r-- 1 shota staff 0 4 6 11:24 memo.txt
※ユーザーを指定しないとすべてから指定した権限が追加したり削除したりできる。
chmodは先ほどの数字でも指定ができる。
chmod 600 memo.txt
chown・・・所有者を変更する
chown nobody important.txt
important.txtの所有者をnobodyに変える。ただし、sudoを使わなければできない。
-r-------- 1 nobody staff 0 4 6 11:34 important.txt -rw-rw-r-- 1 shota staff 0 4 6 11:24 memo.txt
catでimportant.txtを開いてみると
shota$ cat important.txt cat: important.txt: Permission denied
ただし、フォルダの権限がshotaになっているのでファイルの削除はできる。
cat・・・ファイルを見ることができるコマンド
cat memo.txt
ファイルを二つ指定すると連結して表示される。
cat memo.txt important.txt
sudo・・・管理者権限でコマンドを実行できる。
sudo 〜〜〜
cat /etc/group・・・グループの一覧が表示される。
cat /etc/group
groups・・・自分が所属しているグループの一覧が表示される。
groups
chgrp・・・ファイルの所属グループを変更する。
chgrp admin important.txt
結果
-r-------- 1 nobody admin 0 4 6 11:34 important.txt -rw-rw-r-- 1 shota staff 0 4 6 11:24 memo.txt
ディレクトリのパーミッション
r | lsさせるかどうか。 | 4 |
w | touchができるかどうか。つまりファイルが作れる/削除できるか否か。 | 2 |
x | cdができなくなる。通常は付けて使う。 | 1 |
mkdirでディレクトリを作る。
drwxr-xr-x 2 shota staff 68 4 6 12:04 abc -r-------- 1 nobody admin 0 4 6 11:34 important.txt -rw------- 1 shota staff 0 4 6 11:24 memo.txt
abcにcdで移動して試しにchmodでreadを取ってみると
chmod -r .
そうすると
ls: .: Permission denied