# 権限付与のコマンド等のまとめ
## 概要
サーバーやWorkStationの管理を任されているのですが,そこで困ったことがあったので簡単にまとめました.
サーバーにユーザーを追加した際や鍵認証のSSHを行う際に使用するコマンドです.
管理者にはおそらく必要となるコマンドだし,管理者じゃなくても使う場面はあると思うので,まあ必要になったらみてください.
## 目次
1. 権限の確認と説明
3. 変更コマンド(chmod,chown,chgrp)
4. 参考記事
## 権限の確認と説明
権限の確認は簡単です.
`ls -l`で確認できます.
隠しファイルも必要な場合は`ls -la`と打ちます.
```
$ ls -la
合計44
drwxr-xr-x 3 test01 test01 4096 4月 5 16:20 .
drwxr-xr-x 12 root root 4096 4月 5 16:20 ..
-rw-r--r-- 1 test01 test01 1600 1月 9 2016 .Xdefaults
-rw-r--r-- 1 test01 test01 220 9月 1 2015 .bash_logout
-rw-r--r-- 1 test01 test01 3771 9月 1 2015 .bashrc
drwxr-xr-x 3 test01 test01 4096 2月 14 12:21 .config
-rw-r--r-- 1 test01 test01 807 4月 5 2018 .profile
-rw-r--r-- 1 test01 test01 14 1月 9 2016 .xscreensaver
-rw-r--r-- 1 test01 test01 8980 4月 20 2016 examples.desktop
```
以上のうち今回見るのは`drwxr-xr-x 3 test01 test01`の部分です.(3のみ関係ないです)
詳細はコマンドとともに説明しますが,簡単な説明は以下の通り.
`drwxr-xr-x` : ファイルorディレクトリへのアクセス権,読み書き実行の権限があるかないかを示す,`chmod` で変更 (後述のパーミッションの見方で詳しく説明)
`test01 test01` : 先がファイルorディレクトリの所有者(Owner),後がグループ名(group),それぞれ`chown`,`chgrp`で変更可能
### パーミッションの見方
上述の`drwxr-xr-x`がパーミッションと呼ばれるもので,これの見方を簡単に説明します.
- 区切り方は以下のように区切ります
` d | rwx | r-x | r-x `
- 1文字目 : ファイルの種別を表しています.
|表示|意味|
|----|----|
|-|ファイル|
|d|ディレクトリ|
|l|シンボリックリンク|
- 2~4文字目, 5~7文字目, 8~10文字目 : それぞれファイルの所有者(Owner), 所有グループ(group), その他(others)に対する権限を表しています.これは`chmod`で変更可能
|表示 |意味|
|----|----|
|r |読み取り可能|
|w |書き込み可能|
|x | 実行可能|
| - | それぞれの権限なし|
## 変更コマンド(chmod, chown, chgrp)
### chmod
`chmod` は *change mode* の略で,ファイルのパーッミションを変更するコマンドになります.
コマンドの使用例は以下の通り.
```
$ chmod 750 hoge.txt
```
基本的には ` chmod アクセス権 ファイル` で行います.
ここで重要なのは2番目の数値です,これは各位の数字が0~7の3桁で指定します.
権限は上述した読み取り,書き込み,実行の3種類で,これらにそれぞれの数値が割り当てられています.
|権限|数値|
|---|---|
|読み取り可能|4|
|書き込み可能|2|
|実行可能|1|
これらの数字の足し算でアクセス権を表します.
例えば,上で示した`750`の場合,権限は次のようになります.
|所有者|所有グループ|その他|
|-----|----------|-----|
|7<br>= 4 + 2 + 1|5 <br>= 4 + 0 + 1| 0 <br>= 0 + 0 + 0
|全て可能|読み取り・実行可能<br>(書き込み不可)|全ての権限なし|
|rwx|r-x|---|
それぞれの権限に当てられた数字の組み合わせで,区別できるようになってます.
なんて便利なのでしょう!
なので,セキュリティをあげたい場合は`700`にして所有者以外は何もできなくする,誰にでも使用できるようにするには`777`にする,など場合に応じて変更しましょう.
### chown
`chown` は *change owner* の略で,所有者を変更するコマンドです.`chmod`に比べたらかなり簡単です.
コマンドの使用例は以下の通り.
```
$ chown User hoge.txt
```
上記のように,PCに登録されている`User`を`hoge.txt`の所有者にする,だけです.簡単ですね.
`chown`では,グループも一気に指定することができ,以下のように行います.
```
$ chown User:Group hoge.txt
```
`:`で挟んで,グループを指定すると`chgrp`を行わなくてもできます.
`chown`には便利なコマンドオプションがありますが,それは使用するときに調べてみてください.
### chgrp
`chgrp`は*change group*,所有グループを変えるコマンドです.
コマンドの使用例は以下の通り.
```
$ chgrp Group hoge.txt
```
`chown`と同じですね,ただ上述した通り`chown`で変更可能なので,あまり使わないと思います.
私は使ったことありません(笑)
## 参考記事
以下をクリックすると参考にした記事に飛びます,詳しく知りたい方はそちらをご覧ください.
- [パーミッション](https://kazmax.zpp.jp/linux_beginner/permission_numerical.html)
- [chmod](https://eng-entrance.com/linux-command-chmod)
- [chown](https://webkaru.net/linux/chown-command/)
- [chgrp](https://eng-entrance.com/linux-command-chgrp)
## 追記
サーバー管理を行う人なら問題ないと思いますが,`root`としてログインしないと上記のコマンドは使用できません.
またセキュリティ上`root`にログインできないようにしている場合は,`sudo`コマンドとして使用してください.
まぁ必要ないアドバイスだと思いますが....
###### tags: `Linux` `サーバー管理`