■ はじめに
Linux の ユーザおよびグループに関するコマンドを纏める
目次
【1】ユーザ 1)ユーザ追加 - useradd 2)ユーザ削除 - userdel 3)ユーザ変更 - usermod 4)ユーザ一覧表示 - cat /etc/passwd 5)ログイン中ユーザ一覧表示 - who 6)自分自身のユーザ名表示 - whoami 7)ユーザ切替 - su 【2】グループ 1)グループ追加 - groupadd 2)グループ削除 - groupdel 3)グループ管理コマンド - gpasswd 【3】サンプル 例1:Hello world for user 例2:Hello world for group 例3:グループおよびユーザ作成 例4:管理者権限ユーザ作成
【1】ユーザ
1)ユーザ追加 - useradd
useradd [オプション] ユーザー名
Options
Option | Explanation | Memo |
---|---|---|
-d ディレクトリ | 新規作成ユーザのホームディレクトリを指定 | -d "/home/runner" |
-g グループID | 新規作成ユーザが所属するグループIDを指定 | -g runner |
-s シェル | ログインシェルを指定。指定しない場合、システムのデフォルトシェル | -s /bin/bash |
サンプル
# ログインをしないユーザを作成 # (ログインをしないユーザは「/sbin/nologin」がわりあてられる) sudo useradd -s /sbin/nologin tomcat
参考文献
http://webkaru.net/linux/useradd-command/
2)ユーザ削除 - userdel
userdel [オプション] ユーザー名
Options
Option | Explanation | Memo |
---|---|---|
-r | ユーザのホームディレクトリも削除する場合 |
参考文献
http://webkaru.net/linux/userdel-command/
3)ユーザ変更 - usermod
usermod [オプション] ユーザ名
Options
Option | Explanation |
---|---|
-a (--append) | 「-G」オプションで指定したグループをセカンダリーグループに追加する |
-G (--groups) GROUP | セカンダリーグループを変更する(複数ある場合は「,」で区切って指定)。変更ではなく追加したい場合は「-a」オプションを同時に指定する |
* 以下の関連記事で使用
Docker ~ docker を sudo なしで実行する ~
https://dk521123.hatenablog.com/entry/2023/11/22/000000
usermod -aG # ユーザのホームディレクトリやグループ、パスワードなどを # 変更するためのコマンド
https://atmarkit.itmedia.co.jp/ait/articles/1612/14/news022.html
参考文献
http://webkaru.net/linux/usermod-command/
4)ユーザ一覧表示 - cat /etc/passwd
cat /etc/passwd
more /etc/passwd
5)ログイン中ユーザ一覧表示 - who
who [オプション]
参考文献
http://itpro.nikkeibp.co.jp/article/COLUMN/20060228/230998/
6)自分自身のユーザ名表示 - whoami
# Who ami I?
whoami
参考文献
http://webkaru.net/linux/whoami-command/
7)ユーザ切替 - su
* 詳細は、以下の関連記事を参照
Linux ~ Root 権限 に関わるコマンド ~
https://dk521123.hatenablog.com/entry/2016/06/10/233349
# su = Switch User の略 su -l 【ユーザ】 -c "【コマンド】"
【2】グループ
メイングループ
* ユーザが最初に所属するグループ => 通常、ユーザ名と同じ名前になる => ユーザは最低1つのグループに所属
サブグループ
* メイングループ以外にユーザが所属しているグループ => メイングループだけだと柔軟性が持たせるようにする
1)グループ追加 - groupadd
groupadd グループ名
** 参考文献 http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230787/
2)グループ削除 - groupdel
groupdel グループ名
参考文献
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230788/
3)グループ管理コマンド - gpasswd
gpasswd * ユーザが所属するグループ情報を管理するためのコマンド
https://atmarkit.itmedia.co.jp/ait/articles/1612/12/news016.html
* 以下の関連記事で使用
Docker ~ docker を sudo なしで実行する ~
https://dk521123.hatenablog.com/entry/2023/11/22/000000
# 現行ユーザをdockerグループに所属させる sudo gpasswd -a $USER docker
Options
Option | Explanation |
---|---|
-a (--add) USER | ユーザをグループに所属させる |
-d (--delete) USER | ユーザをグループのメンバーから外す |
【3】サンプル
例1:Hello world for user
# ユーザ追加 $ sudo useradd user1 # 確認 $ cat /etc/passwd # user1:x:1005:1005::/home/user1:/bin/sh # パスワード設定 $ sudo passwd user1 New password: Retype new password: passwd: password updated successfully # ユーザ切替 su - user1 # user1から抜ける exit # ユーザ削除 sudo userdel user1 # -r : ホームディレクトリも削除したい場合 # sudo userdel -r user1
例2:Hello world for group
# ユーザ作成 sudo useradd user1 # 作成したユーザのグループ $ groups user1 user1 : user1 # グループ作成 $ sudo groupadd develop # グループの確認 $ cat /etc/group develop:x:1003: # 絞って確認する場合 # cat /etc/group | grep develop # ユーザ user1 を グループ develop に追加する $ sudo usermod -aG develop user1 # 確認1 $ groups user1 user1 : user1 develop # 確認2 $ id user1 uid=1015(user1) gid=1016(user1) groups=1017(user1),1018(develop) # ユーザ user1 を グループ develop から外す $ sudo gpasswd -d user1 develop Removing user user1 from group develop # 確認 $ groups user1 user1 : user1 # グループ削除 $ sudo groupdel develop # developがないことを確認 $ cat /etc/group | grep develop
例3:グループおよびユーザ作成
# Step1: グループ追加 groupadd runner # Step2: ユーザ追加 useradd -d "/home/runner" runner -g runner -s /bin/bash # Step3: sudo 権限付与 echo "%runner ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/runner
例4:管理者権限ユーザ作成
# ユーザ追加 sudo useradd demoadmin # パスワード付与 sudo passwd demoadmin # wheelグループに追加 # sudo usermod -aG wheel demoadmin # ユーザがsudoコマンドを使えるように設定する sudo EDITOR=vim visudo ~~~~ demoadmin ALL=(ALL) ALL ~~~~ # ユーザ変更 su - demoadmin # ユーザ確認 whoami # 抜ける exit # ユーザ削除 sudo userdel demoadmin
関連記事
Linux ~ 権限/所有 に関わるコマンド ~
https://dk521123.hatenablog.com/entry/2016/06/10/233349
Linux ~ パーミッション / アクセス権限 ~
https://dk521123.hatenablog.com/entry/2022/07/01/000000
Linux ~ 環境変数あれこれ ~
https://dk521123.hatenablog.com/entry/2015/07/16/103501
sudoコマンド
https://dk521123.hatenablog.com/entry/2016/10/22/165317
Docker ~ docker を sudo なしで実行する ~
https://dk521123.hatenablog.com/entry/2023/11/22/000000
シェル ~ Shebang ~
https://dk521123.hatenablog.com/entry/2024/02/02/000000
シェル ~ あれこれ編 ~
https://dk521123.hatenablog.com/entry/2018/03/03/210642
Linuxログイン時に独自のメッセージ表示を表示するには
https://dk521123.hatenablog.com/entry/2017/06/22/214918