qmailadmin(vpopmail)で1文字のメールアカウントを作成してみる

みなさんこんにちは。
ディーネットの浜田です。
自分に影響のある花粉症の時期が過ぎたのかわからないので未だにマスクを外せない日々が続きます。
今回はqmailadminで1文字のメールアカウントを作成する方法についてです。

1文字のメールアカウントを作る

基本的にqmailadminで1文字のメールアカウントを作成しようとすると、以下のように怒られて作成できません。

qmailadmin.png
コマンドラインから実行しても怒られて作成できません

# /home/vpopmail/bin/vadduser x@mail-test.denet.net passwd
Error: Illegal username

どうしても1文字のメールアカウントを作成したい!という場合はどうすればいいか。
qmailadminはvpopmailを利用してアカウントを作成しているので、こちらのスクリプトを修正してあげれば作成できるようになります。
今回テストを行った環境は
・CentOS7系
・vpopmailを導入した際のソースが残っていること (今回の場合は/usr/local/src/vpopmail-5.4.33)

vi vpopmail.c
/*
* Add a virtual domain user
*/
int vadduser( char *username, char *domain, char *password, char *gecos,
int apop )
 ~ 中略 ~
#ifdef USERS_BIG_DIR
if ( strlen(username) == 1 ) return(VA_ILLEGAL_USERNAME);
#endif

上記はvpopmailスクリプトにあるユーザ追加コマンド(vadduser)についての記述の一部です。
if文のところを見ると、入力されたユーザ名が1文字であればエラーを返す設定になっていますので、

if ( strlen(username) == 0 ) return(VA_ILLEGAL_USERNAME);

こちらを上記のように変えればオッケーです。
また、パスワード変更(vpasswd)、容量制限の変更(vsetuserquota)についての記述でも同様の1文字制限がありますので適宜変更して下さい。

変更後にコンパイルを実行すれば完了です。

qmailadmin2.png
コマンドラインでも正常に作成できています。

# /home/vpopmail/bin/vadduser y@mail-test.denet.net passwd
# ll /home/vpopmail/domains/mail-test.denet.net/
合計 8
drwx------ 3 vpopmail vchkpw   37  4月 24 15:33 postmaster
-rw------- 1 vpopmail vchkpw  315  4月 25 15:05 vpasswd
-rw------- 1 vpopmail vchkpw 2429  4月 25 15:05 vpasswd.cdb
drwx------ 3 vpopmail vchkpw   37  4月 25 15:03 x
drwx------ 3 vpopmail vchkpw   37  4月 25 15:05 y

何故1文字のアカウントが作れない?

しかし、何故で1文字のメールアカウントが作成できないのか。
qmailではメールアカウント数100毎に「0」~「9」、「A」~「Z」という数字もしくはアルファベット1文字のディレクトリが作成され、そのディレクトリに100件ずつメールアカウントが保存されます。
一文字のメールアカウントを作成した場合、上記のディレクトリと名前が被ってしまうので不具合が生じる可能性が有ります。
そのため、方法を紹介した後で述べるのもなんですが、基本的には1文字のアカウントは作成しない方針でvpopmailを利用したほうがいいでしょう。

では、今回はこの辺で。

返信を残す

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

CAPTCHA