はじめに
こんにちは、インフラエンジニアのやすです。
この記事では、LinuxのOSユーザーの作成方法をご紹介します。
ユーザーの作成や削除は、「チーム単位で1つのアカウントを共有して使っている場合」は別ですが、「個人単位でアカウントを発行している場合」は、メンバーの出入りがあるたびに発生する定型作業の1つになります。
だいたい四半期の切り替わり時期(転職など人が動く時期)に、よくやってるかなーって印象です。
ユーザーの作成をする際に考えることは下記で紹介しているので、あわせてどうぞ♪
ユーザー作成方法
ユーザーIDやユーザーグループは指定せず、シンプルに作成してみます。
※ユーザーの作成は一般ユーザーだと権限不足でできないので、rootでやる必要があります。
※なぜか/とshadowを繋げて記載するとブログを更新できなかったので、あえてスペースを入れています。ご容赦を(汗)
###################
1、事前作業
###################
(1)「test1」ユーザーがいないことを確認
[root@server02 ~]# ls -l /home | grep test1
[root@server02 ~]#
[root@server02 ~]# cat /etc/passwd | grep test1
[root@server02 ~]#
[root@server02 ~]# cat /etc/ shadow | grep test1
[root@server02 ~]#
[root@server02 ~]# cat /etc/group | grep test1
(2)設定ファイルを念のためバックアップ
※ユーザーを削除したい時、バックアップから元に戻すことはありません。普通userdelを使います。
※でも僕は後から状況がわかるので、作業日付でファイルをバックアップするのが好きです。
・作業日付のファイルがないことを確認
[root@server02 ~]# ls -l /etc/passwd* | grep 20250527
[root@server02 ~]#
[root@server02 ~]# ls -l /etc/ shadow* | grep 20250527
[root@server02 ~]#
[root@server02 ~]# ls -l /etc/group* | grep 20250527
[root@server02 ~]#
・バックアップ
[root@server02 ~]# cp -ip /etc/passwd /etc/passwd_`date +"%Y%m%d"`
[root@server02 ~]#
[root@server02 ~]# cp -ip /etc/ shadow /etc/ shadow_`date +"%Y%m%d"`
[root@server02 ~]#
[root@server02 ~]# cp -ip /etc/group /etc/group_`date +"%Y%m%d"`
[root@server02 ~]#
・作業日付のファイルがあることを確認
[root@server02 ~]# ls -l /etc/passwd* | grep 20250527
-rw-r--r--. 1 root root 1632 May 27 08:45 /etc/passwd_20250527
[root@server02 ~]#
[root@server02 ~]# ls -l /etc/ shadow* | grep 20250527
----------. 1 root root 1548 May 27 08:45 /etc/ shadow_20250527
[root@server02 ~]#
[root@server02 ~]# ls -l /etc/group* | grep 20250527
-rw-r--r--. 1 root root 696 May 27 08:45 /etc/group_20250527
[root@server02 ~]#
###################
2、ユーザー作成
###################
[root@server02 ~]# useradd test1
[root@server02 ~]#
###################
3、事後作業
###################
(1)「test1」ユーザーがいることを確認
[root@server02 ~]# ls -l /home | grep test1
drwx------. 2 test1 test1 62 May 27 08:55 test1
[root@server02 ~]#
[root@server02 ~]# diff /etc/passwd /etc/passwd_`date +"%Y%m%d"`
34d33
< test1:x:1006:1006::/home/test1:/bin/bash
[root@server02 ~]#
[root@server02 ~]# diff /etc/ shadow /etc/ shadow_`date +"%Y%m%d"`
34d33
< test1:!!:20234:0:99999:7:::
[root@server02 ~]#
[root@server02 ~]# diff /etc/group /etc/group_`date +"%Y%m%d"`
54d53
< test1:x:1006:
[root@server02 ~]#
(2)パスワード設定
・パスワードを設定
[root@server02 ~]# passwd test1
Changing password for user test1.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@server02 ~]#
・パスワードが設定されたことを確認(第2フィールドに暗号化された文字が入っていること。一部マスクしてます)
[root@server02 ~]# diff /etc/ shadow /etc/ shadow_`date +"%Y%m%d"`
34d33
< test1:$6$rounds=100000$GzBUjrl8BFu.5m0o$g0yvMgJj3kme6RYnhdgrdm/zCF5cuK2eUyLu/d0YsKCSv689bd90FajUFewu***************:20234:0:99999:7:::
[root@server02 ~]#
#########################
4、パスワードの有効期限の設定
#########################
(1)パスワードの有効期限を確認
[root@server02 ~]# chage -l test1
Last password change : May 26, 2025
Password expires : never
Password inactive : never
Account expires : never
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
[root@server02 ~]#
(2)パスワードの有効期限を90日、有効期限切れの警告を14日に設定
[root@server02 ~]# passwd -x 90 -w 14 test1
Adjusting aging data for user test1.
passwd: Success
[root@server02 ~]#
(3)パスワードを有効期限切れに設定(初回ログイン時にPWを変更させたい場合)
[root@server02 ~]# passwd -e test1
Expiring password for user test1.
passwd: Success
[root@server02 ~]#
(4)パスワードの有効期限を確認
[root@server02 ~]# chage -l test1
Last password change : password must be changed
Password expires : password must be changed
Password inactive : password must be changed
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 90
Number of days of warning before password expires : 14
[root@server02 ~]#
#########################
5、初回ログイン(ユーザー側)
#########################
・test1ユーザーに初回切り替え
[root@server02 ~]# exit
logout
[ec2-user@server02 ~]$
[ec2-user@server02 ~]$ su - test1
Password: ※初期PWを入力
You are required to change your password immediately (administrator enforced).
Current password: ※初期PWを入力
New password: ※新PWを入力
Retype new password: ※新PWを入力
[test1@server02 ~]$
・念のため再度ログイン確認
[test1@server02 ~]$ exit
logout
[ec2-user@server02 ~]$
[ec2-user@server02 ~]$ su - test1
Password:
Last login: Tue May 27 09:38:16 JST 2025 on pts/0
[test1@server02 ~]$
[test1@server02 ~]$ whoami
test1
[test1@server02 ~]$
・有効期限を確認
[test1@server02 ~]$ exit
logout
[ec2-user@server02 ~]$
[ec2-user@server02 ~]$ su -
Password:
Last login: Tue May 27 08:26:17 JST 2025 on pts/0
[root@server02 ~]#
[root@server02 ~]# chage -l test1
Last password change : May 27, 2025
Password expires : Aug 25, 2025
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 90
Number of days of warning before password expires : 14
[root@server02 ~]#
ユーザー関係のファイルについては下記で紹介しているので、合わせてどうぞ♪
その他
「ユーザーのアカウント管理台帳」のようなものがあると思うので、そちらも忘れず更新しましょう。
ではまた、バイバーイ♪