Linuxコマンド　権限(パーミッション系)



アクセス権	数値	説明
---	0	読み込み書き込み不可
--x	1	実行のみ
-w-	2	書き込みのみ
-wx	3	書き込み実行のみ
r--	4	読み込みのみ
r-x	5	読み込み実行のみ
rw-	6	読み込み書き込みのみ
rwx	7	読み込み書き込み実行ができる
パーミッションを変更する
では実際にパーミッションの変更をしてみましょう。

以下では全てのパーミッションで読み込み書き込み実行を許可します。

```
chmod 777 test.txt
ls -l

実行結果：
ch_image02

数値の7は読み込み書き込み実行が可能です。ここでは「所有者」「グループ」「その他ユーザ」全てを7に指定しています。「chmod」コマンド実行後にlsコマンドを実行すると、実行権が「rwxrwxrwx」になっていることがわかりますね！

グループの実行権のみ読み込みのみの権限にしたい場合は「747」に指定すればOKです。

chmod -R ・・・・・・・指定ディレクトリ以下の全てを変更
chmod u+w ・・・・・・・オーナーに書き込み権を与える
chmod g-x ・・・・・・・グループに実行権を与えない
chmod o+x ・・・・・・・他人に実行権を与える
chmod a+x ・・・・・・・全てに実行権を与える

chown ・・・・・・・・オーナーの変更
chgrp ・・・・・・・・グループの変更

chmodで以下を併せて入力した場合

sudo chmod 644
rw-r--r--	通常のHTMLファイルなど。自分は読み込み、書き込みができるが、グループメンバや他人は読み込みしかできない。

sudo chmod 666
rw-rw-rw-	CGIスクリプトが書き込むファイルなど。自分もグループメンバも他人も、読み込みと書き込みができる。

sudo chmod 755
rwxr-xr-x	通常のディレクトリ、コマンド、CGIスクリプトなど。誰でも読込みと実行はできるが、書き込みは自分だけ。

sudo chmod 777
rwxrwxrwx	CGIスクリプトがファイルを作成するためのディレクトリなど。誰でもなんでもOK。セキュリティ上は少々危険。

```


```

検証機はubuntuですが、yumのパッケージを使用しているコマンドがないため、
Centosでも同じ結果になるといえます。

F＝FREE
W=書き込み
R=読み込み
rootuser=Linuxの管理者

700 所有者(rootuser) F
→所有者（自分）は何でも可、それ以外（他人）は何もできないようにする
sshフォルダは700にする必要がありました。
これのこと
↓
.ssh
理由として、id_rsaファイルを格納するために操作を行う必要がある。
600ではフォルダ内のファイルの存在確認ができないのです。
さっき試したところ、ファイルを閲覧できるかどころか・・・
フォルダに入れる権限がなかったようです。
※root userに切り替えると
.sshフォルダに入れます
そしてファイルも確認はできますし、ファイルも閲覧できます。
現にcat id_rsa.pubで情報も出力されます。

600 所有者：W
→他者に秘密鍵を読まれないための設定
(所有者のみ読み書き可能)


400 所有者：R
→PC所有者にのみ読み込み権限を与える。
所有者以外は読み込めない。
所有者も書き込み、実行ができない。

権限を600にするか400にするかは、ケースバイケース。
600の場合はファイルの所有者に読み取り、書き込み権限が付きます。
400にした場合は、読み取り権限のみが付きます。
ここまでですが、
秘密鍵の権限は700にしてはいけないということがわかるかと思われます。

$ chmod 600 ~/.ssh/id_rsa
$ chmod 400 ~/.ssh/id_rsa

□すべてのユーザーに全権限を設定する
$ chmod a=rwx hoge.sh

soujirou.shファイルに対して権限の設定例

□所有者に実行権限を追加する
$ chmod u+x soujirou.sh

□その他のユーザーから書き込みと読み込み権限を削除する
$ chmod o-rw soujirou.sh

□.shの拡張子を持つファイルすべての権限を設定
$ chmod a=rwx *.sh
既存の権限に対して追加や削除ができるので、
数字で指定するより柔軟に設定できるのが特徴です。
ファイルやディレクトリの指定にはワイルドカード(*)も使えます。

□ディレクトリごと権限を設定変更する
ディレクトリの権限を変えても中身のファイルやディレクトリの権限は変更されません。再帰的に中身をすべて同じように権限を設定変更するには -R をつけて実行します。

$ # ディレクトリ(mydir)とそれ以下のファイルやディレクトリすべてに設定
$ chmod o-rw mydir -R

□chownで所有者を変更する
chown コマンドでファイルやディレクトリの所有者を変更することができます。change owner の略で文字通り所有者の変更を意味します。
$ # chown [ユーザー名] [ファイル or ディレクトリ]
$ # soujirou.sh ファイルの所有者を root にする 
$ chown root soujirou.sh

□chgrpでグループを変更
chgrp コマンドは change group の略でグループを変更します。chown のグループ版です。

$ chown [ユーザー名] [ファイル or ディレクトリ]
$ soujirou.sh ファイルの所有者を root にする 
$ chown root soujirou.sh
chgrp も chown も -R を付けるとディレクトリ以下まとめて所有者やグループを設定できます。

アクセス権 数値  説明
--- 0   読み込み書き込み不可
--x 1   実行のみ
-w- 2   書き込みのみ
-wx 3   書き込み実行のみ
r-- 4   読み込みのみ
r-x 5   読み込み実行のみ
rw- 6   読み込み書き込みのみ
rwx 7   読み込み書き込み実行ができる
パーミッションを変更する
では実際にパーミッションの変更をしてみましょう。

以下では全てのパーミッションで読み込み書き込み実行を許可します。

chmod 777 test.txt
ls -l

実行結果：
ch_image02

数値の7は読み込み書き込み実行が可能です。ここでは「所有者」「グループ」「その他ユーザ」全てを7に指定しています。「chmod」コマンド実行後にlsコマンドを実行すると、実行権が「rwxrwxrwx」になっていることがわかりますね！

グループの実行権のみ読み込みのみの権限にしたい場合は「747」に指定すればOKです。

chmod -R ・・・・・・・指定ディレクトリ以下の全てを変更
chmod u+w ・・・・・・・オーナーに書き込み権を与える
chmod g-x ・・・・・・・グループに実行権を与えない
chmod o+x ・・・・・・・他人に実行権を与える
chmod a+x ・・・・・・・全てに実行権を与える

chown ・・・・・・・・オーナーの変更
chgrp ・・・・・・・・グループの変更

chmodで以下を併せて入力した場合

sudo chmod 644
rw-r--r--   通常のHTMLファイルなど。自分は読み込み、書き込みができるが、グループメンバや他人は読み込みしかできない。

sudo chmod 666
rw-rw-rw-   CGIスクリプトが書き込むファイルなど。自分もグループメンバも他人も、読み込みと書き込みができる。

sudo chmod 755
rwxr-xr-x   通常のディレクトリ、コマンド、CGIスクリプトなど。誰でも読込みと実行はできるが、書き込みは自分だけ。

sudo chmod 777
rwxrwxrwx   CGIスクリプトがファイルを作成するためのディレクトリなど。誰でもなんでもOK。セキュリティ上は少々危険。


```