【Linux】アクセス権について

f:id:hira98:20190528053757p:plain

【結論】

  • Linuxではファイルやフォルダにアクセス権を設定できる。
  • ls -lで設定されているアクセス権を確認できる。
  • chmodでアクセス権を変更できる。

【目次】

アクセス権の種類

Linuxでは読み(r)、書き(w)、実行(x)の三種類のアクセス権があり、ファイルとフォルダではそれぞれ意味が異なります。

f:id:hira98:20190528053815p:plain

アクセス権の確認方法

ファイルやフォルダに設定されているアクセス権はls -lコマンドで確認できます。

$ ls -l sample.txt 
-rw-r--r--  1 hirao  staff  0  5 27 11:16 sample.txt

結果の味方は次の通りです。

f:id:hira98:20190528053830p:plain

(3)のリンクカウント以外は、ファイルやフォルダに付属する一般的な情報なので説明は省きます。

(3)の意味を理解するには、Linuxファイルシステムがどのような仕組みなのかを知る必要があり、以下の記事が綺麗にまとまっていました。

https://qiita.com/lnznt/items/6178e1c5f066f22fe9c2

ザックリ言うと、Linuxファイルシステムは「ファイルを説明するためのデータ」と「実際のファイルの中身」に分かれており、ls -lで表示されるのは「ファイルを説明するためのデータ」だけです。リンクカウントは「ファイルを説明するためのデータ」に紐づいている「実際のファイルの中身」に紐づいている「説明するためのデータ」の数を表します。

これを図で表すと次のようになります。

【図1】

f:id:hira98:20190528053855p:plain

【図2】

f:id:hira98:20190528053909p:plain

因みに、図1,2は参考にした記事に掲載された図を一部変更して掲載しています。

アクセス権の変更方法

アクセス権の変更はchmodコマンドで行えます。

# chmod [アクセス権] [ファイル名]

アクセス権の指定方法は数値モードと`記号モードの2種類があります。

数値モードでの指定方法

下表に示すような数字で指定する方法です。

既存のファイルやフォルダに対して、アクセス権を上書きするケースで利用します。

f:id:hira98:20190528195339j:plain

引用:日経XTECH アクセス権限

以下は実行例です。

#例)所有者にだけ、RWXのアクセス権を与えたい時
$ chmod 700 sample

#例)所有者、グループ、その他にRのアクセス権を与えたい時
$ chmod 444 sample

記号モードでの指定方法

下表のように記号を使って指定する方法です。

既存のファイルやフォルダのアクセス権の一部を変更する場合に利用します。

記号モード(組合せ) 説明
u,g,o,a uは所有者、gはグループ、oはその他、aはすべて
+,-,= +は権限の追加、-は権限の削除、=は権限の指定
r,w,x rは読み、wは下記、xは実行

以下は実行例です。

# 例)所有者、グループ、その他に、読み込み権限を追加したい場合
$ chmod a+r sample.txt

# 例)所有者に読み書き実行の全ての権限を、グループとその他には読み込み権限だけを与えたい場合。
$ chmod u=rwx,go=r sample.txt

参考情報

日経XTECH アクセス権限

Linux: ハードリンクと inode

最後に

殆ど知っている上に、大した情報ではない今回のブログをまとめるのに費やした時間3h。

これが、今の私の情報整理力です🤮