Linuxでのファイルのアクセス権限について説明します。

具体例からの解説

Linuxではファイル・ディレクトリのアクセス権限を簡単に設定することができます。 アクセス権限には読み込み・書き込み・実行の3種類があります。更に細かな管理ができるように、所有ユーザ・所有グループ・全ユーザに異なる権限が設定できるようになっています。

さて、lsコマンドにlオプションをつけてファイルへのアクセス権限を確認してみましょう。 次のような画面が得られたとします。

$ ls -l
total 0
-rwxr-xr-x. 1 root     yusuke 112 Mar 19 20:25 a.out
-rw-rw-r--. 1 yusuke apache 0 Mar 19 20:25 file1.txt
-rw-rw-r--. 1 yusuke yusuke 0 Mar 19 20:25 file2.txt

読み方は以下の図で解説しています。 まず始めにアクセス権限が表示されており、rwxで表現されています。次がファイルタイプ・所有ユーザ名・所有グループ名・サイズ・更新日時が続きます。 この場合、rootユーザには「r(読み込み), w(書き込み), x(実行)」の全権限が、yusukeグループには「r(読み込み), x(実行)」が、その他のユーザには「r(読み込み)」のみが許されている事になります。

アクセス権限の表示方法

先に見たように、アクセス権限は”r,w,x”の3つのローマ字で表現されます。ただ、Linuxのシステム内ではこの3文字を保存しているわけではありません。 人間に読みやすいようにしているだけで、実は次のように数字を割り当てています。

文字 数値 意味
r 4 読み込み
w 2 書き込み
x 1 実行

これらの数字の組み合わせの和はすべて異なるので、その和もすべてユニークになります。それらを用いると「rwxr-xr-x」は「755」などとも表せます。この表記方法は重要ですので覚えておきましょう。

アクセス権の設定

アクセス権限は以下のコマンドで設定できます。ここでは、file1.txtが所有ユーザのみ読み書き・それ以外は読み込みのみできるようにしています。

$ chmod 644 file1.txt

そもそも所有者を変更したい場合には以下のようにします。

$ chown user1 file1.txt //file1の所有ユーザをuser1に変更
$ chown user1:group2 file1.txt //file1の所有ユーザをuser1に、所有グループをgroup2に変更

その他、細かな変更方法はmanコマンドなどを当たってみましょう。