Linuxのパーミッションの読み方と指定方法について

コンピューターアーキテクチャ

概要

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

パーミッションの読み方

ファイル種別

最初の1文字は、ファイル種別を表している。

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

以降3文字単位でファイルのオーナー別に権限を表している。

2~4文字目 ユーザー ファイルの所有者に対する権限
5~7文字目 グループ ファイルの所有グループに対する権限
8~10文字目 その他 その他に対する権限

権限の種類

権限の種類は以下の3つある。

r 読み取り
w 書き込み
x 実行

ファイルとディレクトリのどちらかによって意味合いが変わるので注意。

ファイルの場合

r 読み取り ファイルの内容を読み出すことができる
w 書き込み ファイルの内容を編集可能 
x 実行 ファイル自体をプログラムとして実行可能

ディレクトリの場合

r 読み取り ディレクトリ配下のファイル一覧を表示できる
w 書き込み ディレクトリ配下でのファイル作成や削除ができる※1
x 実行 ディレクトリに移動することができる※2

※1 ディレクトリ配下のファイルは書き込み権限がなくとも削除ができる
※2 ディレクトリに実行権限が与えられていない場合、そのディレクトリ移動できなくなる

ls -l hoge.md

-rw-r--r--  1 bmf  staff  652 Jul 18 11:45 hoge.md

hoge.mdのパーミッション

ファイル種別:ファイル
ユーザーに対する権限:読み込み/書き込み
グループに対する権限:読み込み
その他に対する権限:読み込み

パーミッションの設定方法

数値で指定する方法とアルファベットで指定する方法がある。
パーミッションの設定にはchmodコマンドを使用する。

数値で指定する方法

chmod モード 対象ファイル名

3つの数字を使って、3桁でパーミッションを指定する。
100の位がユーザー、10の位がグループ、1の位がその他。

4 r 読み取り
2 w 書き込み 
1 x 実行

複数の権限を与えたい場合は、数字の合計を指定する。
例えば、読み取りと書き込みの権限を与えたい場合は、6を、全ての権限を与えたい場合は、7を指定する。

ls -l hoge.md

-rw-r--r--  1 bmf  staff  652 Jul 18 11:45 hoge.md

chmod 766 hoge.md

-rwxrw-rw-  1 bmf  staff  1788 Jul 18 11:57 hoge.md

アルファベットで指定する方法

chmod 変更対象+変更方法+変更内容 対象ファイル

変更対象と変更方法と変更内容をアルファベットと記号で指定する。

変更対象

u ユーザー
g グループ
o その他
a 全て

複数指定ができる。
例えばユーザーとグループを対象としたい場合は、ugと指定する。

変更方法

= 指定した権限にする

  • 指定した権限を付与する
  • 指定した権限を除去する

変更内容

r 読み取り
w 書き込み
x 実行

複数指定ができる。
例えば、読み取りと書き込みを指定したい場合は、rwと指定する。

ls -l hoge.md

-rw-r--r--  1 bmf  staff  652 Jul 18 11:45 hoge.md

chmod a+rw hoge.md

-rw-rw-rw-  1 k.takeuchi  staff  2877 Jul 18 12:24 hoge.md

参考

余談

ls -l hoge.md

-rw-r--r--  1 bmf  staff  652 Jul 18 11:45 hoge.md

ls -lの結果で出力されるパーミッションの項目の次に表示される1という数字は、ハードリンク数を意味している。