【Linux】アクセス権について
【結論】
- Linuxではファイルやフォルダにアクセス権を設定できる。
ls -l
で設定されているアクセス権を確認できる。chmod
でアクセス権を変更できる。
【目次】
アクセス権の種類
Linuxでは読み(r)、書き(w)、実行(x)の三種類のアクセス権があり、ファイルとフォルダではそれぞれ意味が異なります。
アクセス権の確認方法
ファイルやフォルダに設定されているアクセス権はls -l
コマンドで確認できます。
$ ls -l sample.txt -rw-r--r-- 1 hirao staff 0 5 27 11:16 sample.txt
結果の味方は次の通りです。
(3)のリンクカウント以外は、ファイルやフォルダに付属する一般的な情報なので説明は省きます。
(3)の意味を理解するには、Linuxのファイルシステムがどのような仕組みなのかを知る必要があり、以下の記事が綺麗にまとまっていました。
https://qiita.com/lnznt/items/6178e1c5f066f22fe9c2
ザックリ言うと、Linuxのファイルシステムは「ファイルを説明するためのデータ」と「実際のファイルの中身」に分かれており、ls -l
で表示されるのは「ファイルを説明するためのデータ」だけです。リンクカウントは「ファイルを説明するためのデータ」に紐づいている「実際のファイルの中身」に紐づいている「説明するためのデータ」の数を表します。
これを図で表すと次のようになります。
【図1】
【図2】
因みに、図1,2は参考にした記事に掲載された図を一部変更して掲載しています。
アクセス権の変更方法
アクセス権の変更はchmod
コマンドで行えます。
# chmod [アクセス権] [ファイル名]
アクセス権の指定方法は数値モード
と`記号モードの2種類があります。
数値モードでの指定方法
下表に示すような数字で指定する方法です。
既存のファイルやフォルダに対して、アクセス権を上書きするケースで利用します。
以下は実行例です。
#例)所有者にだけ、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
参考情報
最後に
殆ど知っている上に、大した情報ではない今回のブログをまとめるのに費やした時間3h。
これが、今の私の情報整理力です🤮