次の構文を使用してローカルメールを送信しました。
echo "Testing" | mail -s "This is just a test" root@localhost
次に、次のコマンドを使用してrootとしてログインします。
sudo -i
そして私のメールをチェックしてください。メッセージがそこにあります。 mailコマンドを繰り返して、次のようにrootとしてログインした場合:
su root
メッセージが私のメールボックスにありません。どちらの場合も、rootアカウントでログインしましたが、ここで何が起こっていますか?これはCentOS 7のかなり新しいデフォルトインストールです。
私もsuでログインしてもう一度確認してみましたが、そこにいない場合はログアウトして sudo -iで再度ログインしましたが、当然メールがそこにありました。
答え1
この動作の原因はMAIL
環境変数です。ルートに切り替えると
sudo -i
初期ログイン(-i
)をシミュレートし、MAIL
環境変数をに設定します/var/spool/mail/root
。ルートに切り替えると
su root
環境MAIL
変数は以前の値を保持します。つまり、/var/spool/mail/jo
コマンドはmail
ルートのメールボックスの代わりにユーザーのメールボックスを確認します。だから空だと見ることができます。