【初心者用】Linuxコマンド(1)-groupadd,useradd,groupdel,userdel

##■Linuxって何？
：OS（Operating System）の一種類で、OSにはWindows, Linux, IOS, Androidなどがある。
＊OS：リソースなどシステム全般的なものを管理し、色んなアプリケーションを動かすための、基盤になるソフトウェア。

##■Linuxディストリビューション
：RedHat系、Debian系、Slackware系などがあり、RedHat系やDebian系を使うことが多い。

**・RedHat系**
：RedHat Enterprise Linux, CentOS, Fedora, Amazon Linuxなど

**・Debian系**
：Debian, Ubuntuなど

**・使用中のLinuxディストリビューション確認**

```bash:AmazonLinux2の場合
# cat /etc/system-release
Amazon Linux release 2 (Karoo)
```

```bash:Ubuntu18.04の場合
# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.5 LTS"
```

##group・user作成・削除
：Linuxでは複数のユーザーが使用できるようになっていてユーザー・グループ毎にファイルアクセスなどの権限設定ができる。ユーザーは大きくrootユーザーと一般ユーザーで分かれていてる。rootユーザーはシステム設定ファイルの変更などができ、非常に強い権限を持っており、操作によってはOSが壊れてしまうので、<font color="blue">**rootユーザーでの操作は注意が必要！**</blue>


**コマンド：groupadd**
：オプションについては<font color="Red">**man groupadd**</font>を参考

```bash:group確認
# cat /etc/group
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
adm:x:4:adm,daemon
tty:x:5:
disk:x:6:
lp:x:7:daemon
mem:x:8:
kmem:x:9:
wheel:x:10:ec2-user
mail:x:12:mail
uucp:x:14:
man:x:15:
games:x:20:
gopher:x:30:
video:x:39:
dip:x:40:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
utmp:x:22:
utempter:x:35:
cdrom:x:11:
tape:x:33:
dialout:x:18:
floppy:x:19:
rpc:x:32:
ssh_keys:x:499:
(省略...)
```

```bash:group作成・確認
# cat /etc/group | grep hogegroup
# /usr/sbin/groupadd -g 611 hogegroup
# cat /etc/group | grep hogegroup
hogegroup:x:611:
```

**コマンド：useradd**
：オプションについては<font color="Red">**man useradd**</font>を参考

```bash:user確認
# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
(省略...)
```

```bash:user作成・確認
# cat /etc/passwd | grep hogeuser
# /usr/sbin/useradd -d /home/hogeuser -g hogegroup -u 644 -s /bin/bash -m hogeuser
# cat /etc/passwd | grep hogeuser
hogeuser:x:644:611::/home/hogeuser:/bin/bash
```

**コマンド：passwd**
：オプションについては<font color="Red">**man passwd**</font>を参考

```bash:password設定・ログイン
# passwd hogeuser
ユーザー hogeuser のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
# ssh -l hogeuser locahost
```

**コマンド：userdel**
：オプションについては<font color="Red">**man userdel**</font>を参考

```bash:user削除・確認
# cat /etc/passwd | grep hogeuser
hogeuser:x:644:611::/home/hogeuser:/bin/bash
# userdel -r hogeuser
# cat /etc/passwd | grep hogeuser
```

**コマンド：groupdel**
：オプションについては<font color="Red">**man groupdel**</font>を参考

```bash:group削除・確認
# cat /etc/group | grep hogegroup
hogegroup:x:611:
# groupdel hogegroup
# cat /etc/group | grep hogegroup
```

##権限（パーミッション）
linuxではファイル毎に権限設定が可能で、特定のグループのみあるいは特定のユーザーのみ権限を付与することができる

**・権限確認**

```bash:hogeuserユーザーで作業
# ls -altrh /home/hogeuser/
合計 20K
-rw-r--r-- 1 hogeuser hogegroup  124  8月 16  2016 .bashrc
-rw-r--r-- 1 hogeuser hogegroup  193  8月 16  2016 .bash_profile
-rw-r--r-- 1 hogeuser hogegroup   18  8月 16  2016 .bash_logout
drwxr-xr-x 7 root     root      4.0K  7月 13 18:35 ..
drwx------ 2 hogeuser hogegroup 4.0K  7月 13 18:35 .
```
-rw-r--r--など：権限の設定内容

|filetype（1文字）|owner権限（3文字）|group権限（3文字）|その他ユーザー権限（3文字）|
|---|---|---|---|
|-|rw-|r--|r--|


|記号|意味|
|---|---|
|-|ファイル|
|d|ディレクトリ|
|l|シンポリックリンク|
|r|読み取り権限（read）|
|w|書き込み権限（write）|
|x|実行権限（execute）|

##権限設定

**・コマンド：chown（owner設定）**
：オプションについては<font color="Red">**man chown**</font>を参考

```bash:rootユーザーで作業
# touch /home/hogeuser/test.txt
# ls -altrh /home/hogeuser/
合計 24K
-rw-r--r-- 1 hogeuser hogegroup  124  8月 16  2016 .bashrc
-rw-r--r-- 1 hogeuser hogegroup  193  8月 16  2016 .bash_profile
-rw-r--r-- 1 hogeuser hogegroup   18  8月 16  2016 .bash_logout
drwxr-xr-x 7 root     root      4.0K  7月 13 19:17 ..
-rw------- 1 hogeuser hogegroup   65  7月 13 19:20 .bash_history
-rw-r--r-- 1 root     root         0  7月 13 19:20 test.txt
drwx------ 2 hogeuser hogegroup 4.0K  7月 13 19:20 .
# chown hogeuser:hogegroup test.txt
# ls -altrh
合計 24K
-rw-r--r-- 1 hogeuser hogegroup  124  8月 16  2016 .bashrc
-rw-r--r-- 1 hogeuser hogegroup  193  8月 16  2016 .bash_profile
-rw-r--r-- 1 hogeuser hogegroup   18  8月 16  2016 .bash_logout
drwxr-xr-x 7 root     root      4.0K  7月 13 19:17 ..
-rw------- 1 hogeuser hogegroup   65  7月 13 19:20 .bash_history
-rw-r--r-- 1 hogeuser hogegroup    0  7月 13 19:20 test.txt
drwx------ 2 hogeuser hogegroup 4.0K  7月 13 19:20 .
```

**・コマンド：chmod（ファイル権限設定）**
：オプションについては<font color="Red">**man chmod**</font>を参考

```bash:rootユーザーで作業
# chmod 754 test.txt
[root@batch-master-ju hogeuser]# ls -altrh
合計 24K
-rw-r--r-- 1 hogeuser hogegroup  124  8月 16  2016 .bashrc
-rw-r--r-- 1 hogeuser hogegroup  193  8月 16  2016 .bash_profile
-rw-r--r-- 1 hogeuser hogegroup   18  8月 16  2016 .bash_logout
drwxr-xr-x 7 root     root      4.0K  7月 13 19:17 ..
-rw------- 1 hogeuser hogegroup   65  7月 13 19:20 .bash_history
-rwxr-xr-- 1 hogeuser hogegroup    0  7月 13 19:20 test.txt
drwx------ 2 hogeuser hogegroup 4.0K  7月 13 19:20 .
```
"754"オプション：パーミッション設定内容で各ブロックの権限を8進数で設定

|7|5|4|
|---|---|---|
|rwx|r-x|r--|
|owner：読み取り、書き込み、実行|group：読み取り、実行|その他のユーザー：読み取り|