😸

Linux ファイルのパーミッション

2021/01/16に公開

パーミッションとは

このファイルまたはディレクトリに対して、

  • どのユーザーが
  • どういった操作ができるか

といった権限のことです。

見方

# 例
$ 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