基 ユーザー情報は「KickStart設定ファイル」内で記述しておくことで、「KickStart」実行時に自動で作成されます 。
本シェルの使用用途は「後から大量のユーザーを登録必要に迫られた」「一括してパスワードを変更する」などに限定されると思います。
ユーザー、グループを作成する。
作成するユーザー情報を、外部ファイルに記載しておき、シェル実行時にユーザーやグループ等の一括登録を行います。
ユーザーリスト
作成するユーザ情報を記述します。
※ パスワードはシェル実行時に強制的に「P@ssW0rd」を付与します。
作成するユーザーリストの例)
「/root/scripts/etc」配下へ格納します。
1 2 3 4 |
# user.list jboss:x:1001:1001::/home/jboss:/bin/bash:jboss: # opeusr:x:1002:1002::/home/opeusr:/sbin/nologin:opegrp: # oracle:x:1310:1310::/home/oracle:/bin/bash:dba,backupdba,oper,dgdba,kmdba,racdba: |
ユーザーリスト記載項目
- ユーザー名:作成するユーザー名
- パスワード:「 x 」という文字 or 暗号化されたパスワード(未使用)
※ 「 x 」はシャドウパスワードを使用している事を意味します。 - ユーザーID:登録するユーザーID
- グループID:登録するグループID
- コメント:(使用用途など)
- ホームディレクトリ:ユーザーのホームディレクトリ
- ログインシェル:ユーザーのログインシェル名
- サブグループ:登録するサブグループ名(複数ある場合は、カンマ区切り)
ユーザー作成シェル
「/root/scripts/bin」配下へ格納します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
#!/bin/sh #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ # # ver.1.0.0 2020.03.24 # # Usage: # /root/scripts/bin/mk_user.sh # # Description: # # # 設計書 # # #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ # -------------------------------------------------- # devider. # -------------------------------------------------- # return N/A # -------------------------------------------------- line (){ echo -e "\\n ------------" echo -e " ▼ ${1}" } new_passwd='P@ssW0rd' # add group groupadd -g 1001 jboss USERLIST=../etc/mk_user.list if [ ! -f ${USERLIST} ]; then echo "${USERLIST} no such file or directory" exit 1 fi grep -v \^# ${USERLIST} | while read line do name="`echo ${line} | cut -d ":" -f1`" passwd="`echo ${line} | cut -d ":" -f2`" uid="`echo ${line} | cut -d ":" -f3`" gid="`echo ${line} | cut -d ":" -f4`" comment="`echo ${line} | cut -d ":" -f5`" homedir="`echo ${line} | cut -d ":" -f6`" loginsh="`echo ${line} | cut -d ":" -f7`" subgid="`echo ${line} | cut -d ":" -f8`" if [[ ${subgid} = "" ]]; then /usr/sbin/useradd -u ${uid} -g ${gid} -c "${comment}" -s "${loginsh}" ${name} || continue else /usr/sbin/useradd -u ${uid} -g ${gid} -G ${subgid} -c "${comment}" -s "${loginsh}" ${name} || continue fi if [ $? != 0 ]; then echo "Failed to set password. ${name}" fi echo ${name}:${new_passwd} | chpasswd echo "Making ${name} succeeded." done grep -v \^# ${USERLIST} | while read line do name="`echo ${line} | cut -d ":" -f1`" line "The value of [ /etc/passwd ] for [ ${name} ]" echo " `cat "/etc/passwd" | grep ${name}`" done exit $? |
シェルの説明
1行目:シェバン
2-15行目:コメント
※ 本スクリプト利用により発生した利用者の損害全てに対し、いかなる責任をも負わないものとし、損害賠償をする一切の義務はないものとします。