useradd(LPIC)


useradd,usermod,userdel

ユーザーを追加したり、削除したりするコマンドです。

useradd

ユーザーを追加するためのコマンドです。 似たコマンドにadduserコマンドがあります。

オプション

-c コメント

コメントを指定

-d パス

ホームディレクトリを指定

-g グループ名/GID

プライマリグループを指定

-G グループ名/GID

プライマリグループ以外に所属するグループを指定

-s パス

デフォルトシェルを指定

-e

アカウント失効日の指定

-m

ホームディレクトリを作成する

サンプル

snorlaxユーザーを作成する

$ useradd snorlax

snorlaxユーザーをホームディレクトリ付きで作成する

ユーザー作成時に /etc/skel 以下にあるものがコピーされます。

$ useradd -m snorlax
$ ls /home
snorlax

snorlaxユーザーをコメント付きで作成する

$ useradd -c 'I love snorlax!' snorlax
$ cat /etc/passwd | grep snorlax
snorlax:x:1000:1000:I love snorlax!:/home/snorlax:/bin/sh

snorlaxユーザーを失効日付きで作成する

2022年8月24日になるとログインできなくなります。

$ useradd -e 8/24/2022 snorlax
$ passwd snorlax    # パスワードを入力
$ chage -l snorlax
Last password change					: Aug 23, 2022
Password expires					: never
Password inactive					: never
Account expires						: Aug 24, 2022
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7

usermod

ユーザー情報を変更するコマンドです。

オプション

-c コメント

コメントを変更

-d パス

ホームディレクトリを変更

-g グループ名/GID

プライマリグループを変更

-G グループ名/GID

所属するグループを変更

-s パス

デフォルトシェルを変更

-L

パスワードをロックして一時的に無効化

-U

パスワードのロックを解除

サンプル

ユーザーをグループに追加する

$ groupadd pokemon
$ usermod -aG pokemon snorlax
$ groups snorlax
snorlax : snorlax pokemon

ユーザーを対話的なログインをできないようにする

sshコマンドによるログインやsuコマンドによるアカウントの変更ができなくなります。

$ usermod -s /sbin/nologin snorlax
$ cat /etc/passwd | grep snorlax
snorlax:x:1000:1000::/home/snorlax:/sbin/nologin

アカウントをロックする

/etc/shadow の暗号化されたパスワードの先頭に!を追加してロックします。

$ usermod -L snorlax
$ cat /etc/shadow | grep snorlax
snorlax:!$y$j9T$7Qgxd6njOb7hJJ6PnGtsH0$MHxutns2V446j7twZNlEDVUAfPKV.q62L9T3asDXmv2:19227:0:30:7:15:19228:

アカウントをアンロックする

/etc/shadow の暗号化されたパスワードの先頭の!を削除してアンロックします。

$ usermod -U snorlax
$ cat /etc/shadow | grep snorlax
snorlax:$y$j9T$7Qgxd6njOb7hJJ6PnGtsH0$MHxutns2V446j7twZNlEDVUAfPKV.q62L9T3asDXmv2:19227:0:30:7:15:19228:

userdel

ユーザーを削除するコマンドです。

サンプル

snorlaxユーザーを削除する

$ userdel snorlax

snorlaxユーザーとホームディレクトリを削除する

$ userdel -r snorlax
$ ls /home

同様に以下のコマンドでも削除できる

$ userdel --force --remove snorlax