シェル 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