😸
Linux ファイルのパーミッション
パーミッションとは
このファイルまたはディレクトリに対して、
- どのユーザーが
- どういった操作ができるか
といった権限のことです。
見方
# 例
$ ls -la
-rwxr-xr-x 1 root root ...
パーミッションは9つの文字列で表され、先頭から3文字区切り(rwx/r-x/r-x
)
でぞれぞれ意味を成します。
具体的には、
- 1~3文字(rwx) -> ファイル所有者の権限
- 4~6文字(r-x) -> 同グループに所属しているユーザーに対する権限
- 7~9文字(r-x) -> それ以外のユーザーに対しての権限
といった意味があります。
ちなみに一番最初にある-
はファイルを指し、d
であればディレクトリ、l
であればシンボリックリンクを意味します。
$ ll
# ファイル
-rwxr-xr-x 1 root root ...
# ディレクトリ
drwxr-xr-x 1 root root ...
# シンボリックリンク
lrwxr-xr-x 1 root root ...
各文字の意味
r
-> Read 読み取り権限
w
-> Write 書き込み権限
x
-> Execute 実行権限
-
-> 権限なし
改めて最初の例を見てみる
# 例
$ ls -la
-rwxr-xr-x 1 root root ...
各文字の意味を理解したところで、最初の例を改めて見てみると以下のような意味になります。
- rwx(ファイル所有者の権限)
-> 読み取り権限、書き込み権限、実行権限全て持っている - r-x(同グループに所属しているユーザーに対する権限)
-> 書き込み権限はないが、読み取り権限と実行権限を持っている - r-x(それ以外のユーザーに対しての権限)
-> 書き込み権限はないが、読み取り権限と実行権限を持っている
数値で表す
権限を変更する際には権限を数値で指定します。
# 例
$ chmod 777 hoge.txt
早速ですが以下が数値と権限の対応表です。
数値 | 2進数 | 権限 |
---|---|---|
0 | 000 | --- |
1 | 001 | --x |
2 | 010 | -w- |
3 | 011 | -wx |
4 | 100 | r-- |
5 | 101 | r-x |
6 | 110 | rw- |
7 | 111 | rwx |
数値と権限だけだと覚えにくいので2進数も載せています。
2進数でみると、
0
が権限なしの-
1
が権限あり
となり、数値で見るよりもわかりやすいです。
そして、この表を見ながら例を見てみると
$ chmod 777 hoge.txt
777( = rwxrwxrwx)となるので
全てのユーザーに全ての操作(読み取り、書き込み、実行)ができるようにするといった意味になります。
Discussion