Linuxのパーミッションについてまとめてみた

Linuxのパーミッションに関して、調べたので、個人的にまとめてみた。

 

lsコマンドでパーミッションを表示

パーミッションの表示の仕方は簡単で、パーミッションを見たいファイルやディレクトリがあるところまで、cdで移動して、

[ps]
ls -l
[/ps]

と打つだけで大丈夫です。

[ps]
MAMP % ls -l
total 2056
-rw-r–r–@ 1 hiroki_tkg admin 0 4 10 2014 Icon?
-rw-rw-r– 1 hiroki_tkg admin 1335 4 10 2014 LEAME.rtf
-rw-rw-r– 1 hiroki_tkg admin 1333 4 10 2014 LIESMICH.rtf
-rw-rw-r– 1 hiroki_tkg admin 619 4 10 2014 LISEZ-MOI.rtf
drwxrwxr-x 15 hiroki_tkg admin 510 4 10 2014 Library
drwxr-xr-x 3 hiroki_tkg admin 102 4 20 2014 MAMP.app
drwxr-xr-x 3 hiroki_tkg admin 102 4 20 2014 MacGDBp.app
drwxr-xr-x 3 hiroki_tkg admin 102 4 20 2014 MySQLWorkbench.app
-rw-rw-r– 1 hiroki_tkg admin 1264 4 10 2014 README.rtf
drwxr-xr-x 3 hiroki_tkg admin 102 4 20 2014 Sequel Pro.app
drwxrwxr-x 20 hiroki_tkg admin 680 5 1 2014 bin
drwxrwxr-x 4 hiroki_tkg admin 136 4 10 2014 cgi-bin
drwxrwxr-x 28 hiroki_tkg admin 952 4 10 2014 conf
drwxrwxr-x 4 hiroki_tkg admin 136 4 10 2014 db
drwxrwxr-x 20 hiroki_tkg admin 680 4 10 2014 fcgi-bin
drwxrwxr-x 21 hiroki_tkg admin 714 11 22 12:05 htdocs
drwxrwxr-x 45 hiroki_tkg admin 1530 4 10 2014 licences
drwxrwxr-x 6 hiroki_tkg admin 204 11 23 17:22 logs
drwxrwxr-x 6 hiroki_tkg admin 204 4 10 2014 tmp
-rw-rw-r– 1 hiroki_tkg admin 2179 4 10 2014 お読みください.rtf
[/ps]

こんな感じでファイル名の前に良く分かんない文字列が並んでますね。
これの一番最初のdrwxrwxr-xとか-rw-rw-r–」とかがそのファイル(ディレクトリ)のパーミッションを表しています。

 

パーミッションの読み方

パーミッションの読み方ですが、以下の画像にまとめてみました。

一番最初の文字はファイルの種類を表している

-: ファイル
d: ディレクトリ
l: シンボリックリンク

その次に来る文字列は、それぞれ3桁ずつ、クラスごとの所有権を表している

ユーザーというのは所有者で、グループとは所有者は含まないそのユーザーグループの人、その他はそれ以外全員をさします。
ちなみに、ファイル・ディレクトリを作成した人がユーザー(所有者)になります。

文字それぞれに意味がある。

rwxはそれぞれ、

r: 読み込み
w: 書き込み
x: 実行

を表しています。なので、もし
r- -であれば読み込み権限のみ、
rw-であれば読み込み&書き込み権限があるという事を記しています。

 

パーミッションの変更の仕方

[ps]
chmod [パーミッション(数字)] [オプション] [ファイル名]
[/ps]

これでパーミッションが変更できます。
パーミッションは8進数で表す事が出来ます。

rwx 7
rw- 6
r-x 5
r- – 4
-wx 3
-w- 2
– -x 1
– – – 0

これで、たとえば
ユーザー(所有者): 読 書 実行
グループ: 読 書
その他: 読

という権限を与えたいときは、

[ps]
chmod 764 ファイル名
[/ps]

を実行すれば変更できます。

※オプションで、-Rをつけるとディレクトリ配下全てにそのパーミッションを実行できるので便利です。

[ps]
chmod 777 -R app
[/ps]

これで、appフォルダとその配下のファイル全てのパーミッションが、全ての人が読み書き実行できる権限が与えられます。
 

おまけ:lsコマンドのオプション一覧

lsコマンドで使うと便利なオプションも調べたので、まとめておきます。

-a .で始まる不可視ファイルを表示
-l パーミッション関連・所有者・グループ・更新日を表示
-r ソートを逆順にする
-R ディレクトリの階層を表示
-l パーミッション関連・所有者・グループ・更新日を表示
-t 更新日時でソートする

 

[参考URL]
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230728/
http://kazmax.zpp.jp/linux_beginner/permission.html
http://webkaru.net/linux/ls-command/