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

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

関連記事

Sakura Editor(サクラエディタ)の便利な正規表現(IPアドレス、タブ、改行 など)

皆さんは便利にサクラエディタを利用していますか? データの抽出や解析業務などでとても便利なサクラエディタの色々な置換を紹介していきます。 皆さんの業務が少しでも軽減できれば幸いです。   I …

サンダーバード(Thunderbird)で宛先一括入力!コピペで作業圧縮

みなさんはメーラソフトは何を利用していますか? 私は使いやすいのでサンダーバード(Thunderbird)を利用しています。   サンダーバードはとても使いやすいのですが、大量にある宛先(メ …

Zabbix 3.2.4で死活(Ping)・CPU使用率・メモリ使用率の監視設定方法

ZabbixでLinuxサーバの監視設定をご紹介します。 Zabbixにはシンプルチェック、snmpなどいろいろな監視方法がありますが、 今回はシンプルチェック、Zabbix-agentを利用して、死 …

Zabbix 3.2.4 をyumでインストールする方法

CentOS7へZabbix3.2.4をインストールする方法をご紹介します。 Zabbixとはサーバやネットワーク機器等を監視するソフトウェアです。 機器を監視しておくと、サーバのダウンやネットワーク …

Tera Term(テラターム)マクロの作成方法・使い方

皆さんは業務でTera Term(テラターム)を使うことはありますか? Tera Termとは”ターミナルエミュレータ”と呼ばれるものです。 Windowsサーバはリモートデス …