8
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Linux】連番名でアカウント・パスワードを一括指定してユーザ作成【検証・研修向け】

Last updated at Posted at 2026-01-26

やりたいこと

  • 研修で使用するLinux環境で、受講者1名に対し1ユーザを割り当てたい。
  • 作成するユーザに下記の設定を施したい。
    • ユーザ名は固定文字+連番とし、受講者の人数分 + 講師分だけ作成する。
    • パスワードはユーザ名と同値に設定する。
      • 背景として、このユーザには直接SSH接続できない構成になっており、ユーザログイン以前の段階で一定のセキュリティが担保されている。
        管理の簡便さを優先して、このような設定とした。
    • 研修の都合上、sudoが使用可能なように設定する

前提環境

  • RedHat系ディストリビューション
    • AlmaLinux9、Amazon Linux 2023で確認済

やり方

スーパーユーザ(root)の権限で、下記の5行を一気に入力・実行する。
(講師用+受講者30人分を一斉に作成する例)

for usertomake in `echo user{00..30}`
do
  useradd -m -s /bin/bash -G wheel "${usertomake}"
  echo "${usertomake}:${usertomake}" | chpasswd
done
  • 30と記載している部分は、受講者の人数に合わせて変更する。
  • passwdコマンドでは対話式にパスワードを設定することとなるため、自動化が難しいことから、このような方法を取っている。
  • sudoを実行できる権限が不要の場合は、-G wheelを外す。

実行後は下記の通り、ユーザ・グループ・シャドウパスワード・ホームディレクトリが一括で設定される。

[root@AlmaLinux9-00 ~]# cat /etc/passwd | grep user[0-9][0-9]
user00:x:1002:1002::/home/user00:/bin/bash
user01:x:1003:1003::/home/user01:/bin/bash
(中略)
user30:x:1032:1032::/home/user30:/bin/bash

[root@AlmaLinux9-00 ~]# cat /etc/group | grep wheel
wheel:x:10:user00,user01,user02,user03,user04,user05,user06,user07,user08,user09,user10,user11,user12,user13,user14,user15,user16,user17,user18,user19,user20,user21,user22,user23,user24,user25,user26,user27,user28,user29,user30

[root@AlmaLinux9-00 ~]# cat /etc/shadow | grep user[0-9][0-9]
user00:$6$93KwZtVyBIPJo1XT$d472D/X8oV5M.o9R6RgzHw6ZGFGYPN/Mh99Pnjf2hInkvKosig2fGFRT0yKBFdeOwVjMNaiQ6Q8UWlZaaYVLZ0:20479:0:99999:7:::
user01:$6$csdM4FVvjEz0/ZKo$bhvWYdIJiJCy2LgnIvF71LIrK8q9kGGd0i2XIlOd77wVJiJ5d9QxRYdiL5BWW8EwDdSWZjHqPKkZ9FwWC712y/:20479:0:99999:7:::
(中略)
user30:$6$ROWlyPR1yEw0Zfyn$v4ShN.LYWFBdLVS/SmY16Dl3fuSQuNs/UGgY4OFFeJRFsMD4Ru.a6pKbv2d.ksZfEcXmMm9.tf0FyF2GqwbIf1:20479:0:99999:7:::

[root@AlmaLinux9-00 ~]# ls -l /home/ | grep user[0-9][0-9]
drwx------.  2 user00    user00      62 Jan 26 02:36 user00
drwx------.  2 user01    user01      62 Jan 26 02:36 user01
(中略)
drwx------.  2 user30    user30      62 Jan 26 02:36 user30

ユーザが不要になったら

同じくスーパーユーザ権限で下記を実行。

for usertodel in `echo user{00..30}`
do
  userdel -r "${usertodel}"
done

一発でアカウント・ホームディレクトリごと削除できる。

[root@AlmaLinux9-00 ~]# cat /etc/passwd | grep user[0-9][0-9]
[root@AlmaLinux9-00 ~]# ls -l /home/ | grep user[0-9][0-9]
[root@AlmaLinux9-00 ~]# 

一回の研修が終わったら、アカウントを削除して次回研修前に作り直すようにすると、前回研修で作ったファイルが残っていてネタバレ……なんてこともなく安心。

注意点

  • あくまで検証や研修用で手っ取り早く複数ユーザが必要な場合に特化した方法である。実用環境での使用はセキュリティ的に問題があると思われる。
    • パスワードが規則的すぎる。
    • echo "${usertomake}:${usertomake}" | chpasswdが実行されている瞬間は、プロセス一覧などからパスワードが筒抜けになる。
  • 本番(商用)環境で一斉にユーザ追加したい場合には、一時ファイルを準備してnewusersコマンドを使うとかのほうが良い。
8
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?