Linuxのパーミッションの扱い方
linuxのパーミッションとは
linuxではファイルやディレクトリにはユーザの種類などによって実行できる動作の権限を設定できます。
見方
linuxでファイルなどのパーミッションを確認するには lsコマンドに -all オプションを使います。
name@ubuntu-server:~/foo$ ls -all
total 20
drwxrwxr-x 5 yuki yuki 4096 Sep 15 18:34 .
drwxr-x--- 18 yuki yuki 4096 Sep 15 18:33 ..
drwxrwxr-x 2 yuki yuki 4096 Sep 15 18:34 directory1
drwxrwxr-x 2 yuki yuki 4096 Sep 15 18:34 directory2
drwxrwxr-x 2 yuki yuki 4096 Sep 15 18:34 directory3
-rw-rw-r-- 1 yuki yuki 0 Sep 15 18:33 file1
-rw-rw-r-- 1 yuki yuki 0 Sep 15 18:34 file2
-rw-rw-r-- 1 yuki yuki 0 Sep 15 18:34 file3
結果のうち、左端の赤丸にそのファイル(ディレクトリ)のパーミッションが表記されてます。ちなみに左からファイル種別、パーミッション、ハードリンク数、所有者、所有グループ、ファイルサイズ、最終更新日、ファイル名、が表示されているようです。
ファイル種別
ファイル種別とは指し示すものがファイルなのかディレクトリなのかシボリックリンクなのかを示します。種別の表記は以下の通り。
パーミッション
パーミッションは読み込み、書き込み、実行の3種類ごとに設定されます。またパーミッションが三回記述されているのは、所有者、所有グループ、その他のユーザそれぞれに別の権限を設定するためです。所有者などはls -allから確認できます。
パーミッションの設定は後述しますが、指定された数字の合計で設定します。
設定
設定はchmodで行います。ファイルのパーミッションによっては sudo が必要かもしれません。
chmod 770 対象のパス
数字の部分で3つのユーザへの権限を表していて、左からRead, Write, Execute(実行)となっています。各権限(R W X)に数字が当てられており、それの合計値で一つの所有者やグループのパーミッションを設定できます。
例えば、Read(4)とWrite(2)とExecute(1)を付与したい場合は7とします。また実行権限以外を付与するなら、Read(4)とWrite(2)から6とします。読み込みだけなら4のままです。Noneがあるのかは不明。
以下の画像のパーミッションを設定するには以下コード。
chmod 760 ファイル名等