Linuxでのユーザー情報更新と権限変更

# chmodコマンド
***ファイルまたはディレクトリに対する権限を設定するコマンド***です。


まずは管理者権限のrootに入ります。
```
$ sudo su -
```

```
root# touch zoo 　#ファイル作成
root# ls
.CFUserTextEncoding	.forward		zoo
.bash_history		Library
root# ls -1
.CFUserTextEncoding
.bash_history
.forward
Library
zoo
root# ls -li
total 24
  355541 -rw-r--r--   1 root  wheel    4 Jun  6  2020 .CFUserTextEncoding
24086928 -rw-------   1 root  wheel  491 Jun 30 18:17 .bash_history
   20949 -r--r--r--   1 root  wheel   10 Mar  1  2020 .forward
   20945 drwxr-xr-x  19 root  wheel  608 Dec 31  2020 Library
35823050 -rw-r--r--   1 root  wheel    0 Jul 12 15:55 zoo
root# chmod 000 zoo　　
```
***chmod 000 zoo***を実行すると

```
 root# ls -li
total 24
  355541 -rw-r--r--   1 root  wheel    4 Jun  6  2020 .CFUserTextEncoding
24086928 -rw-------   1 root  wheel  491 Jun 30 18:17 .bash_history
   20949 -r--r--r--   1 root  wheel   10 Mar  1  2020 .forward
   20945 drwxr-xr-x  19 root  wheel  608 Dec 31  2020 Library
35823050 ----------   1 root  wheel    0 Jul 12 15:55 zoo
```
***zooの権限が無くなって***しまっています。
なぜ無くなったかは下の権限を参考にしてみてください。

# 権限について
こちらは参考資料から引用致します。

> 引用　https://qiita.com/ntkgcj/items/6450e25c5564ccaa1b95

+ ***権限の区分（設定する範囲）***

|所有者権限|グループ権限|その他のユーザーの権限|
--|  --| --| 

+ ***権限の基本種類（他にもある）***

|読み込み権限|書き込み権限|実行権限|
|--|--|--|
|r|w|x|

### 権限の範囲
数値0~7で各区分（ユーザーグループ）が所有する***権限の範囲***を設定。区分が3種なので3桁の数値で設定する。0 は権限が無く、7 は全ての権限を有する。

|数値　|権限　|内容|
|--|--|--|
|0　|	---|権限なし|
|1　|	--x|実行できるよ|
|2|-w-|書き込みできるよ|
|3|-wx|書込・実行できるよ|
|4|r--|読み込みできるよ|
|5|r-x|読込・実行できるよ|
|6|rw-|読込・書込みできるよ|
|7|rwx|読込・書込・実行できるよ|

# chmodを色々使ってみる
上の表を参考に色々動かしていきます。権限が無いところから始めます。
```
root# ls -li
total 24
  355541 -rw-r--r--   1 root  wheel    4 Jun  6  2020 .CFUserTextEncoding
24086928 -rw-------   1 root  wheel  491 Jun 30 18:17 .bash_history
   20949 -r--r--r--   1 root  wheel   10 Mar  1  2020 .forward
   20945 drwxr-xr-x  19 root  wheel  608 Dec 31  2020 Library
35823050 ----------   1 root  wheel    0 Jul 12 15:55 zoo
```
***200で書き込み権限のみが付与***されます。
```
root# chmod 200 zoo
root# ls -li
total 24
  # 省略
35823050 --w-------   1 root  wheel    0 Jul 12 15:55 zoo
```
***400で読み込み権限のみが付与***されます。
```
root# chmod 400 zoo
root# ls -li
total 24
  # 省略
35823050 -r--------   1 root  wheel    0 Jul 12 15:55 zoo
```
***600で読み込みと書き込み権限のみが付与***されます。
```
root# chmod 600 zoo
root# ls -li
total 24
  # 省略
35823050 -rw-------   1 root  wheel    0 Jul 12 15:55 zoo
```
次に***755を実行し、実行権限を全て、読み込みと実行権限が付与***されます。
```
root# chmod 755 zoo  
MacBook-Pro-3:~ root# ls -li
total 24
 # 省略
35823050 -rwxr-xr-x   1 root  wheel    0 Jul 12 15:55 zoo
```
***744も実行し、所有ユーザーは、実行権限を全てあり、グループは読み込みのみができ、その他は読み込みだけできる***ようにしていきます。
```
root# chmod 744 zoo
MacBook-Pro-3:~ root# ls -li
total 24
 # 省略
35823050 -rwxr--r--   1 root  wheel    0 Jul 12 15:55 zoo
```

# 権限指定時の記法記号
下の表も引用させていただきます。
上のように数字ではなく記号でも指定できます。

>　引用　　https://qiita.com/ntkgcj/items/6450e25c5564ccaa1b95

|記号|意味|
|--|--|
|u|所有者の権限|
|g|グループの権限|
|o|その他のユーザーの権限|
|a|すべての権限|
|+|後に記述した権限を付加する|
|-|	後に記述した権限を削除する|
|=	|後に記述した権限にする|
|r|読み込み権限|
|w|書き込み権限|
|x|実行権限|
|s|セットID|
|t|スティッキ・ビット|

***グループに読み込みと書き込み権限を付与***するコマンドです。
```
root# chmod g+rw zoo
root# ls -li
total 24
  # 省略
35823050 ----rw----   1 root  wheel    0 Jul 12 15:55 zoo
```
***その他ユーザーに全権限を付与するコマンド***です。
```
root# chmod o+rwx zoo
root# ls -li
total 24
 # 省略
35823050 ----rw-rwx   1 root  wheel    0 Jul 12 15:55 zoo
```
***所有者(ユーザー)とグループに実行権限付与するコマンド***です。
```
root# chmod ug+x zoo
root# ls -li
total 24
  # 省略
35823050 ---xrwxrwx   1 root  wheel    0 Jul 12 15:55 zoo
```

***-を使って権限を削除***してみます。

```
root# chmod g-wx zoo
root# ls -li
total 24
 # 省略
35823050 ---xr--rwx   1 root  wheel    0 Jul 12 15:55 zoo
```

ここは一例ですが色々試してみてください。
個人的には数字の方がやりやすいかなと思います。


# chown
指定したファイル、ディレクトリの所有するユーザー、グループの変更するコマンドです。
```-R```　ディレクトリの中身の所有者も再帰的に変更します。

```
root# chown new_user file.txt
```

```
root# chown new_user:new_group file.txt
```

# ユーザーの追加

### useraddコマンド
OS上にユーザーを追加するコマンドです。　rootユーザーで実行します。
```
$ useradd new_user
```
オプションもあります。

https://eng-entrance.com/linux-command-useradd

### /etc/passwd
作成されたユーザー一覧が記述されているファイル
```
root# less /etc/passwd
```

# ユーザー更新、削除
```●usermod```
***ユーザー情報を変更するコマンド***です。

```
root# usermod -c "I add new comment" new_user
root# cat /etc/passwd
```
オプションはこの記事に載っています。

https://eng-entrance.com/linux-command-usermod

●```userdel```
***ユーザー情報を変更するコマンド***です。
```
root# userdel new_user
```

⚫︎```groupadd```
***グループを追加するコマンド***です。
```
root#groupadd new_group
```

⚫︎```groupdel```
***グループを削除するコマンド***です。
```
root#groupdel new_group
```

⚫︎```groupmod```
***グループ情報の変更をするコマンド***です。
```
root#groupmod -n new_group new_user
```


⚫︎```passwd```
***ユーザーのパスワードを変更するコマンド***です。
```
root#passwd test
```




# 資料

https://qiita.com/ntkgcj/items/6450e25c5564ccaa1b95

https://www.udemy.com/course/30awslinux/