KAEDE Hack blog

kaede0902 技術ブログ お仕事募集中。

Linux ファイルとディレクトリの権限の見方と操作と注意点 -rwxrw-r-- 754

why

ファイルの詳細確認記事を書いていたら、権限まわりが長くなったので、単体で記事にした

ファイルの権限について - rwx rw- r-- などの文字列の詳細

web.tku.ac.jp

Linuc 101 の知識と、この記事を参考にしている

ls -l では 各ファイルの種類や時刻のほかに、 パーミッション ( 権限 ) も表示されている。

read と write と execute の 3 つの操作を

自分とグループのメンバーと他人ができる権限があるかが示される。

空の テキストファイルと空のディレクトリを作って見てみる。

ls -l
-rw-r--r--  1 kaede  staff      21 Apr 14 22:40 2234.txt
drwxr-xr-x  2 kaede  staff      64 Apr 14 23:23 testDir

先ほどの空のファイルと空のフォルダの例でみていく。

最初の -d が そのアイテムの種類で

そこから そのユーザー、グループ、その他のユーザーの読み書き実行権限が表示されている。

2234.txt ファイルでの -rw-r--r-- の詳細

この例の 2234.txt では -rw-r--r-- を

- ( This is a file)

rw- ( 自分は読み書きができるが実行ができない )

r-- ( グループでは読めるが、書き込みも実行もできない )

r-- ( 他のユーザでは読めるが、書き込みも実行もできない )

に分解できる。

testDir ディレクトリでの drwxr-xr-x の詳細

一方 testDir では drwxr-xr-x となっていて、分解すると

d ( This is a directory)

rwx ( 自分は読み書き実行が全てできる )

r-x ( 所属グループでは読みと実行はできるが、書き込みができない )

r-x ( その他のユーザでは読みと実行はできるが、書き込みができない )

となる

ディレクトリの「実行」はディレクトリの中にファイルやディレクトリを作ったり削除すること。

数字での表し方 と付け方

これらの Read, Write, Exe, の権限は数字でも表せる。

足し算で権限のパワーがわかる。

Read は 4

Write は 2

Exe は 1

なので

読み書き実行全部できる場合は 7

読み書きはできるが、実行権がない場合は 6

中身の確認と実行はできるが、書き込みができない場合は 5

読めるだけの場合は 4

になる。

それを 前述の 自分に与える権限、グループのメンバーに与える権限、他人に与える権限、で 3 つ並べるので、よく環境構築で出てくる

chmod 755

のように 3 つ並ぶことになる。

chmod は権限をファイルなどにつけるコマンド。

以前 Twitter で話題になっていた 脳死で 777 をつけると危険というのは、グループのメンバや他人にまで 書き込み権限や実行権限を与えるのは危険だということだと理解できた。

https://eng-entrance.com/linux-command-umask#umask

またファイル作成時のデフォルトの権限は umask という値に基づいて決定されている。

umask で現在の umask 値を確認できる。

umask 値は 権限とは逆で 7 が最弱で 0 が最強になる。7から引いた値になる。

デフォルトは 002 なので

ファイルを作ると 775 になり

umask を変更して 755 にすると

作成されるファイルは 022 になる。

まとめ

ls -l で ファイルやフォルダの権限情報が出せる

drwxr-xr-x だったら d, rwx, r-x, r-x, と分割して

これはディレクトリで、自分は read write execute ができて、グループのメンバー は write のみができなくて、他人も write のみができない、と中身をみることができる。

また権限の強度を 7 ~ 4 で与えられて、グループや他人にまで 7 のパワーを与えるととてもまずい。

次にやりたいこと

グループのメンバーや他人ができる権限をこれでできて〜と書きつつも実際に試せていない。

他のユーザーを作ってログインして、実際に実行してみたり、

他人としてシェルに入って実行してみたり、実際に試して結果を付け加えたい