通常OSユーザを作成する場合は、useraddコマンドおよびpasswdコマンドを手動で打ち、 一人ひとり作成していきますが、ユーザ数が多くなるとちょっと厄介、ぶっちゃけめんどいです。 今回紹介するスクリプトはユーザ情報がリスト化されたファイルを読み込んで一括でユーザを 作成することができます。 ただし、ユーザが所属するグループを事前に作成しておく必要があります。
■グループを事前に作成
[root@tanyao script]# /usr/sbin/groupadd -g 5000 public
■ユーザリストを準備
[root@tanyao script]# cat mk_user.list # name:password:uid:gid:comment:home_directory:login_shell:sub_gid user01:secret01:5001:5000:::/bin/bash user02:secret02:5002:5000:::/bin/bash user03:secret03:5003:5000:::/bin/bash #user04:secret04:5004:5000:::/bin/bash user05:secret05:5005:5000:::/bin/bash [root@tanyao script]#※ /etc/passwd ファイルのフォーマットに合わせてみた。つもり。
■ユーザ一括作成スクリプト(mk_user.sh)
[root@tanyao script]# cat mk_user.sh #!/bin/sh # mk_user.listに記述されたユーザを一括で作成します。 # 行頭に"#"がある行はコメント行とみなします。 # 既に存在しているユーザを作成しようとするとスキップされます。 # 事前にグループを作成ください。 # rootユーザで実行してください。 USERLIST=./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}" ${name} || continue # サブグループがある場合 else /usr/sbin/useradd -u ${uid} -g ${gid} -G ${subgid} -c "${comment}" ${name} || continue fi echo ${name}:${passwd} | chpasswd echo "Making ${name} succeeded." done exit 0 [root@tanyao script]# [root@tanyao script]# chmod 755 mk_user.sh
■ユーザ作成
[root@tanyao script]# ./mk_user.sh Making user01 succeeded. Making user02 succeeded. Making user03 succeeded. Making user05 succeeded. [root@tanyao script]#
■確認
[root@tanyao script]# su - user01 [user01@tanyao ~]$ su - user02 Password: [user02@tanyao ~]$ id uid=5002(user02) gid=5000(public) groups=5000(public) [user02@tanyao ~]$ pwd /home/user02 [user02@tanyao ~]$
■ユーザ削除コマンド(参考)
[root@tanyao script]# userdel -r user05 [root@tanyao script]# id user05 id: user05: No such user [root@tanyao script]#
◆ユーザ作成コマンドオプション確認
[root@tanyao script]# useradd --help Usage: useradd [options] LOGIN Options: -b, --base-dir BASE_DIR base directory for the home directory of the new account -c, --comment COMMENT GECOS field of the new account -d, --home-dir HOME_DIR home directory of the new account -D, --defaults print or change default useradd configuration -e, --expiredate EXPIRE_DATE expiration date of the new account -f, --inactive INACTIVE password inactivity period of the new account -g, --gid GROUP name or ID of the primary group of the new account -G, --groups GROUPS list of supplementary groups of the new account -h, --help display this help message and exit -k, --skel SKEL_DIR use this alternative skeleton directory -K, --key KEY=VALUE override /etc/login.defs defaults -l, --no-log-init do not add the user to the lastlog and faillog databases -m, --create-home create the user's home directory -M, --no-create-home do not create the user's home directory -N, --no-user-group do not create a group with the same name as the user -o, --non-unique allow to create users with duplicate (non-unique) UID -p, --password PASSWORD encrypted password of the new account -r, --system create a system account -s, --shell SHELL login shell of the new account -u, --uid UID user ID of the new account -U, --user-group create a group with the same name as the user -Z, --selinux-user SEUSER use a specific SEUSER for the SELinux user mapping [root@tanyao script]#
◆ユーザ編集コマンドオプション確認
[root@tanyao script]# usermod --help Usage: usermod [options] LOGIN Options: -c, --comment COMMENT new value of the GECOS field -d, --home HOME_DIR new home directory for the user account -e, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE -f, --inactive INACTIVE set password inactive after expiration to INACTIVE -g, --gid GROUP force use GROUP as new primary group -G, --groups GROUPS new list of supplementary GROUPS -a, --append append the user to the supplemental GROUPS mentioned by the -G option without removing him/her from other groups -h, --help display this help message and exit -l, --login NEW_LOGIN new value of the login name -L, --lock lock the user account -m, --move-home move contents of the home directory to the new location (use only with -d) -o, --non-unique allow using duplicate (non-unique) UID -p, --password PASSWORD use encrypted password for the new password -s, --shell SHELL new login shell for the user account -u, --uid UID new UID for the user account -U, --unlock unlock the user account -Z, --selinux-user new SELinux user mapping for the user account [root@tanyao script]#
◆ユーザ削除コマンドオプション確認
[root@tanyao script]# userdel --help Usage: userdel [options] LOGIN Options: -f, --force force removal of files, even if not owned by user -h, --help display this help message and exit -r, --remove remove home directory and mail spool -Z, --selinux-user remove SELinux user from SELinux user mapping [root@tanyao script]#
この情報がお役に立ちましたら、いえ、ご寄付はいりません。
サイト継続のご協力を賜りたく存じます。 m(_ _)m
0 件のコメント:
コメントを投稿