Linux

【Linux】ユーザーの作成方法

記事内に商品プロモーションを含む場合があります

はじめに

こんにちは、インフラエンジニアのやすです。

この記事では、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 ~]#

ユーザー関係のファイルについては下記で紹介しているので、合わせてどうぞ♪

その他

「ユーザーのアカウント管理台帳」のようなものがあると思うので、そちらも忘れず更新しましょう。

ではまた、バイバーイ♪