IT・ICT

メールアカウント作成作業を短縮!bashスクリプトによるメールアカウント一括作成

投稿日:2017年12月14日 更新日:

メールサーバー新規構築時等、メールアカウント作成作業って単純だけど手間ですよね・・

メールアカウント数が10とか20とかならまだしも1000とかあったら地獄!しかもメールアカウント作成に加え、パスワードの設定もしなければいけません。

企業や自治体のメールサーバ運用業務を実施していると、年度明けに新しいアカウントの作成がドカッと依頼され、めんどくせっと思うことがしばしばです。

 

毎回毎回作成するのも大変なので、色々しらべてbashスクリプトを作成してみました。同じ悩みをお持ちの方の解決方法になれば幸いです。

 

実施した環境

OS:Centos7(Centos6でも動作確認ずみ)

postfix Version:2.10.1

dovecot Version:2.2.10

基本的にはただのユーザ作成のスクリプトなので上記環境は関係ないですが、とりあえず記載しておきます。

 

メールアカウント作成方法

メールアカウント作成は基本的には(ヴァーチャルドメイン等を利用していない場合)はOSのユーザを作成する作業となります。

また、作成したユーザに対してパスワードを付与してあげないといけません。なので実施するコマンドは下記となります。

ユーザ作成

useradd -d /home/新ユーザ名 -s /sbin/nologin 新ユーザ名

※"-d"オプションでホームディレクトリを決め、"-s /sbin/nologin"でサーバへは
ログインできないユーザを作成しています。


作成したユーザにパスワードを付与

passwd 新ユーザ名

上記のコマンドを自動でアカウント分実行しましょうというのが下記のスクリプトになります。

 

メールアカウント作成のbashスクリプト

bashスクリプトとユーザ情報を記載した2つのファイルで実施します。

bashファイルの中身は下記となります。

”list.txt”に記載されたユーザ情報を読み込んでコマンド実行。終わったら次のユーザへという感じです。

vi mailUserAdd.sh

#!/usr/bin/bash

numline=1
cat list.txt | while read line
do
        USERNAME=`echo ${line} | awk '{print $1}'`
		PASSWORD=`echo ${line} | awk '{print $2}'`

	    useradd -d /home/${USERNAME} -s /sbin/nologin ${USERNAME}
		echo "${PASSWORD}" | passwd --stdin ${USERNAME}

		numline=$((numline + 1))
done

※初めの”/usr/bin/bash”は環境によって変わる可能性があります。サーバ上で”which bash”コマンドを実行して調べることができます。”which bash”コマンドで出力された結果にて適宜スクリプトを修正して下さい。

[root@localhost ~]# which bash
/usr/bin/bash

 

ユーザ情報を記載したファイルは以下のフォーマットで記載します。ユーザ名とパスワードを羅列していくだけです。

※ユーザ名とパスワードの間は半角スペースです。

vi list.txt

username1 pass
username2 pass
・
・
・
・
・

 

あとは実行するだけです。

# sh -x./mailUserAdd.sh

※”ーx”をつけるとスクリプトの動作を出力することができます。もしユーザ名の被りなどで失敗した場合はエラー内容を確認してみて下さい。

 

あまり頻繁に利用するものでは無いかもしれませんがユーザ作成をスクリプト化するだけで

業務を圧縮することができると思いますのでぜひお試し下さい!

 

以上、皆さんのお役にたてれば幸いです。

-IT・ICT


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

便利なWEBツール(パスワード自動作成・差分確認・PDF結合)

日々の業務で非常に便利なWEBツールを紹介します。 パソコンにツールをインストールして利用するのもいいですが、インストール作業自体がめんどくさいですよね(わたしはそうです) exeファイルをダウンロー …

Windows10でbashが使える!Windows Subsystem for Linux(Ubuntu)をインストール

Linuxで構築しているサーバの検証やBashスクリプトの検証など、手軽にサクッとLinuxを触りたいことってありますよね。 一度仮想マシンなどを作っておけばいいことではありますが、いちいち仮想マシン …

WindowsUpdate後にリモートデスクトップができないときの対処法

2018/05/に実施されたWindowsUpdate後にリモートデスクトップが利用できない事象が発生しているようです。 運用業務でリモデを利用している方は致命傷ですよね・・・ 私の場合はリモデできる …

一日一回だけスクリプトを実行したい!Zabbix3.2.4 更新間隔:定期設定にて制御する

皆さんは日々の運用業務でZabbixを有効活用していますか? 今回はZabbixアイテムの設定項目の一つ更新間隔:定期設定をご紹介したいと思います。   サーバやネットワーク機器の監視・運用 …

Wordへの画像貼り付け自動化!画像貼り付けマクロの記載方法

運用・保守業務を実施されている方は月次、年次で報告書を提出することが多いと思います。 報告書の中には対応した内容や、サーバーのリソース状況、運用状況等を記載することが わたしは多いですが、中でも画像を …