ユーザーの追加(useraddコマンド)

ユーザーの追加方法です。

利用OS

$ cat /etc/almalinux-release
AlmaLinux release 9.5 (Teal Serval)
$ uname -r
5.14.0-503.15.1.el9_5.x86_64

ユーザーの追加

# useradd tstusr01 --uid 5001 --groups wheel

初回ログイン時にパスワードの設定を求めるようにする

# passwd tstusr01
Changing password for user tstusr01.
New password:xxxx ・・・ 仮のパスワードを設定する
Retype new password:xxxx
passwd: all authentication tokens updated successfully.
# passwd --expire tstusr01 ・・・ パスワードを期限切れにする
Expiring password for user tstusr01.
passwd: Success

初回ログインを想定してsshで接続して、パスワードの設定を要求されるかを見ます。

# ssh tstusr01@localhost
tstusr01@localhost's password:xxxx ・・・ 仮のパスワードを入力する
You are required to change your password immediately (administrator enforced).
You are required to change your password immediately (administrator enforced).
Activate the web console with: systemctl enable --now cockpit.socket

Last login: Sun Dec  8 20:48:23 2024 from ::1
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user tstusr01.
Current password:xxxx ・・・ 仮のパスワードを入力する
New password:yyyy ・・・ 新しいパスワードを設定する
Retype new password:yyyy
passwd: all authentication tokens updated successfully.
Connection to localhost closed.

ユーザー追加のシェルスクリプト

ユーザーを追加するときのシェルスクリプトを用意しておけば楽チンです。

# vi makeuser_list.txt ・・・ 作成するユーザーのリストを用意する
# NAME:PASSWORD:UID:COMMENT:SUBGROUP
tstusr01:tstusr01:5001:testuser01:wheel
tstusr02:tstusr02:5002:testuser02:wheel
# vi makeuser.sh ・・・ シェルスクリプトの作成
#!/bin/bash
#set -x
USERLIST=./makeuser_list.txt

if [[ ! -f ${USERLIST} ]]; then
  echo "${USERLIST} no such file or directory"
  exit 1
fi

cat ${USERLIST} | sed '/^$/d'| grep -v \^# | while read LINE
do
  NAME="`echo ${LINE} | cut -d ":" -f1`"
  PASSWORD="`echo ${LINE} | cut -d ":" -f2`"
  USERID="`echo ${LINE} | cut -d ":" -f3`"
  COMMENT="`echo ${LINE} | cut -d ":" -f4`"
  SUBGROUPS="`echo ${LINE} | cut -d ":" -f5`"
  if [[ ${SUBGROUPS} = "" ]]; then
    useradd ${NAME} --uid ${USERID} -c "${COMMENT}" || continue
  else
    useradd ${NAME} --uid ${USERID} -c "${COMMENT}" --groups ${SUBGROUPS} || continue
  fi
  echo ${NAME}:${PASSWORD} | chpasswd
  echo "Makeing ${NAME} succeeded."
  passwd -e ${NAME}
done

作成したファイルのパーミッションも変更しておきます。

# chmod 744 makeuser.sh
# chmod 666 makeuser_list.txt
# ls -l
total 8
-rwxr--r--. 1 root root 724 Dec  8 21:02 makeuser.sh
-rw-rw-rw-. 1 root root 117 Dec  8 17:41 makeuser_list.txt

試しに実行して見ます。

# ./makeuser.sh
Makeing tstusr01 succeeded.
Expiring password for user tstusr01.
passwd: Success
Makeing tstusr02 succeeded.
Expiring password for user tstusr02.
passwd: Success

タイトルとURLをコピーしました