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

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

関連記事

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

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

Ciscoスイッチ(Catalyst)の正常性確認コマンドいろいろ

Cisco製のネットワークスイッチ(Catalyst)の障害発生時や交換対応後の正常性確認に最低限確認しておきたいコマンドとして下記があります。 下記のコマンドを覚えておくと役に立つのでぜひ覚えておき …

WordPress記事の文字数をカウントするプラグイン。Word Countをインストールする

WordPressでブログを運営されているかたは、各記事の文字数が気になりますよねー 私は各記事をコピペして文字数カウントツールを利用していました。全記事をチェックしようとするとかなり面倒ですよね・・ …

ESXi 5.5.0 redo ログ破損エラーによる仮想マシン起動不可時の対応方法

管理している仮想マシンが突如ダウンし、起動不可に陥る現象が発生しました。 特に予兆もなく、急に発生したのでとてもあせりました・・・ エラー内容は下記 「仮想マシン名」-000001.vmdk の re …

vmware workstation 14 Player へ Centos7.2のインストール方法

Windowsのパソコンなどに仮想マシンを作成し動作させることができる「vmware workstation 12 player」を 利用し、Centos7.2 をインストールする方法を紹介したいと思 …