このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

メールの転送設定:newaliasesコマンド

メールの転送設定:newaliasesコマンド

 Linuxシステムにおいて、メールの転送設定は重要な管理作業の一つです。特定のユーザーに届いたメールを別のユーザーに転送したり、システム全体で共通の転送ルールを設定することで、メール管理が効率化されます。

メールの転送設定

 Linuxでは、特定の宛先に届いたメールを別の宛先に転送することが可能です。メールの転送設定には、システム全体に有効な設定と特定のユーザーだけに有効な設定の2種類があります。システム全体に有効な転送設定はrootユーザーが設定する必要があり、特定のユーザーだけに有効な設定は、そのユーザー自身が行います。

newaliasesコマンドの概要

 newaliasesコマンドは、/etc/aliasesファイルを更新した後、その内容を反映させるために使用されます。このコマンドを実行すると、メールエイリアスのデータベースが再生成され、メール転送設定が有効になります。

【構文】
newaliases

システム全体に有効な転送設定

 システム全体に有効なメール転送設定を行うには、/etc/aliasesファイルを編集します。このファイルにはrootユーザーのみが書き込み可能です。例えば、user01に届いたメールをrootユーザーに転送する設定は、以下のように行います。

/etc/aliasesの編集
# See man 5 aliases for format
postmaster:    root
user01:        root  # この行を追記

この設定を反映させるためには、必ずnewaliasesコマンドを実行してください。

特定のユーザだけに有効な転送設定

 特定のユーザーに対する転送設定を行う場合は、ユーザーのホームディレクトリに「.forward」ファイルを作成します。このファイルには、転送先のユーザー名やメールアドレスをカンマ区切りで記載します。

「.forward」ファイルの内容
root,suzuki
注意事項

 一部のLinuxディストリビューションでは、「.forward」ファイルのアクセス権を600に設定しないと、メール転送が正常に動作しない場合があります。転送に失敗した際は、ファイルのアクセス権を確認してみてください。

コマンドの使用例と解説

1.ユーザーの一覧を表示

・「cat /etc/passwd」コマンドを実行します。

 user01ユーザー、suzukiユーザー、yamadaユーザー、satoユーザー、tanakaユーザーがあることが分ります。

(省略)
user01:x:1000:1000:user01,,,:/home/user01:/bin/bash
(省略)
suzuki:x:1001:1001:,,,:/home/suzuki:/bin/bash
yamada:x:1002:1002::/home/yamada:/bin/sh
sato:x:1003:1003:sato yuko:/home/sato:/bin/sh
tanaka:x:2222:100:tanaka sumire:/home/tanaka:/bin/bash
(省略)
2.rootユーザーに切り替え

・「su -」コマンドを実行します。

user01@ubuntu-vm:~$ su -
パスワード: 
root@ubuntu-vm:~#
3./etc/aliasesファイルの編集とnewaliasesコマンドの実行

 user01に届いたメールをrootユーザーに転送するように「/etc/aliases」ファイルを編集し、「newaliases」コマンドを実行します。

・「nano /etc/aliases」コマンドを実行し、nanoエディタで編集します。

root@ubuntu-vm:~# nano /etc/aliases

・以下の内容を追記します。「Ctrl」+「s」で保存、「Ctrl」+「x」で終了させます。

# See man 5 aliases for format
postmaster:    root
user01:    root  # user01: root を追記

・「newaliases」コマンドを実行します。

root@ubuntu-vm:~# newaliases
4.yamadaユーザーに切り替え、user01にメール送信

以下のようにコマンドを実行して、yamadaユーザーからusr01にメールを送信します。

root@ubuntu-vm:~# su yamada
$ mail user01
Cc: 
Subject: user01-mail
This is user01-mail.
# 「Ctrl」+「D」で終了する。

$ 
5.rootユーザーに切り替えて、メールが転送されているか確認

以下のようにコマンドを実行して確認します。

user01へのメールがrootユーザーに転送されていることが確認できます。

$ su -
パスワード: 
root@ubuntu-vm:~# mail
"/var/mail/root": 2 messages 2 new
>N   1 Mail Delivery Syst 月  8月 19 02:  71/2121  Undelivered Mail Retu
 N   2 yamada@ubuntu-vm   月  8月 19 13:  14/404   user01-mail
? q
6.user01に切り替え、「.forward」ファイルを作成

まず、user01ユーザーに戻ります。以下のコマンドを実行します。

  • exit」コマンド
  • exit」コマンド
  • exit」コマンド
root@ubuntu-vm:~# exit
ログアウト
$ exit
root@ubuntu-vm:~# exit
ログアウト
user01@ubuntu-vm:~$ 

 user01に届いたメールをrootユーザーとsuzukiユーザーに転送するように、nanoエディタで「.forward」ファイルを作成して編集します。

・「nano ~/.forward」コマンドを実行します。

user01@ubuntu-vm:~$ nano ~/.forward

・以下の内容を追記します。「Ctrl」+「s」で保存、「Ctrl」+「x」で終了させます。

root,suzuki

・「chmod 600 ~/.forward」コマンドを実行します。

ファイルのアクセス権を変更します。

user01@ubuntu-vm:~$ chmod 600 ~/.forward
7.satoユーザーに切り替え、user01にメール送信

以下のようにコマンドを実行して、yamadaユーザーからusr01にメールを送信します。

user01@ubuntu-vm:~$ su -
パスワード: 
root@ubuntu-vm:~# su sato
$ mail user01
Cc: 
Subject: user01-mail
This is user01-mail.
# 「Ctrl」+「D」で終了する。

$ 
8.suzukiユーザーに切り替え、メールが転送されているか確認

以下のようにコマンドを実行して確認します。

user01へのメールがsuzukiユーザーに転送されていることが確認できます。

$ su suzuki
パスワード: 
suzuki@ubuntu-vm:/root$ mail
"/var/mail/suzuki": 2 messages 2 new
>N   1 sato yuko          月  8月 19 14:  17/530   user01-mail
? q

まとめ

 メールの転送設定は、システム全体に有効なものと、特定のユーザーだけに有効なものに分けられます。設定を反映するためには、newaliasesコマンドを使用します。また、転送設定が正常に動作するためには、ファイルのアクセス権に注意が必要です。