○ Maildirの作製

・Maildir形式でユーザ登録とディレクトリを作成します
・複数のユーザを一括して登録できるスクリプトを作ります
・perlコマンドで平文パスワードをsha-crypt暗号化します

・ソースの取得、削除は略します
・エディタ、ファイラーの操作は省略します
・Enterキーを省略します

・ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
・設定ファイルで "#" で始まる行はコメントとして解釈されます



○Maildirディレクトリ形式

・postfix、dovecot起動時にMaildirは作成されません
・新規のメッセージをpostfixが受信した時、Maildirが存在しない場合に作成されます
・新しいユーザに対して、mailコマンド等でWelcomeメッセージを送信するか、
・前もって、Maildirディレクトリを作成します

Maildir-Layout



○メール専用ユーザを登録します

・簡単な登録用スクリプトを作ってみます
・"nkf -w -Lu"オプションは UTF8に対応させるものです
nkfのインストールを参照
・"split -l" ← (小文字のエル)
・splitの--suffix-length (default 2) により出力ファイル数が限定されます
・CentOS5 (MD5 $1$)、CentOS6 (SHA-512 $6$) ハッシュの識別子を合わせます
・-kオプションで/root/imap-skelからMaildirのスケルトンをコピーします
・機能しない場合、一人ずつユーザを登録してMaildirディレクトリを作成して下さい

・コンソールログインはできませんが、FTPアクセスは可能です

:/usr/local/sbin/imap-useradd (root root 700)

#!/bin/bash

TMPDIR=imtmp
IMAPLIST=$1
SKEL=/root/imap-skel

mkdir $TMPDIR

nkf -w -Lu $IMAPLIST | split -l 1 $IMAPLIST $TMPDIR/add.

for lst in $TMPDIR/*
do
    IMUSR=$(cut -d , -f 1 $lst)
    USRID=$(cut -d , -f 2 $lst)
    IMPWD=$(cut -d , -f 3 $lst)

    if [ ! -d /home/$IMUSR ] ; then
        SALT=$(dd if=/dev/urandom count=10 2>/dev/null | strings | \
            tr -d '\n[:punct:][:cntrl:][:blank:]' | cut -b 1-8)   
        SHACRYPT=$(perl -e "print crypt('$IMPWD','\$6\$'.'$SALT'.'\$')")
        useradd -u $USRID -m -k $SKEL -s /sbin/nologin -p $SHACRYPT $IMUSR  
    else
        for sub in `ls -1 $SKEL`
        do
            cp -r $SKEL/$sub /home/$IMUSR
            chown -R $IMUSR:$IMUSR /home/$IMUSR/$sub
        done
    fi
done

rm -R $TMPDIR

imap-useradd

○imap-skelの作成

・rootディレクトリに imap-skelを作ります
・その他、必要なものがあれば追加します

[root@jupiter:~]
mkdir -p imap-skel/Maildir/{cur,new,tmp}
chmod -R 700 imap-skel/Maildir
chmod -R 700 imap-skel/Maildir/{cur,new,tmp}

・確認

# ls -Rl imap-skel
imap-skel:
total 4
drwx------. 5 root root 4096 Dec 13 16:41 Maildir

imap-skel/Maildir:
total 12
drwx------. 2 root root 4096 Dec 13 16:41 cur
drwx------. 2 root root 4096 Dec 13 16:41 new
drwx------. 2 root root 4096 Dec 13 16:41 tmp

○ユーザの登録

・rootディレクトリに mailadd.listを作り読み込みます

[root@jupiter:~]
# imap-useradd mailadd.list

:mailadd.list 例

・ユーザ名,ユーザID,パスワードの順に, (カンマ) を入れ、Enterキーで改行
・userIDは/etc/passwdファイルを参照して未使用の番号を使用します

luna,2000,xxxxxxxxxx
star,2001,yyyyyyyyyy
moon,2002,zzzzzzzzzz←改行しない

○ selinuxヘの対応 (selinuxが有効の場合)

:新規インストールファイルのselinuxラベルを修正

[root@jupiter:~]
# restorecon -Rv /usr/local
# restorecon -RFv /home

○ Copyright(c) 528p.com All Rights Reserved.