
次の構文を使用してローカル メールを送信しました。
echo "Testing" | mail -s "This is just a test" root@localhost
次に、次のコマンドを使用して root にログインします。
sudo -i
そしてメールをチェックします。メッセージはそこにあります。メールコマンドを繰り返して、次のコマンドを使用してルートにログインします。
su root
メールはメールボックスにありません。どちらの場合もルート アカウントにログインしているので、何が起こっているのでしょうか? これは CentOS 7 の比較的新しい基本インストールです。
su を使用してログインして再度確認しましたが、メールがなかったので、ログアウトして sudo -i を使用して再度ログインしたところ、確かにメールはありました。
答え1
この動作の原因はMAIL
環境変数です。
sudo -i
初期ログイン(-i
)をシミュレートし、MAIL
環境変数は に設定されます/var/spool/mail/root
。
su root
環境MAIL
変数は古い値のままです。つまり/var/spool/mail/jo
、コマンドはmail
ルートのメールボックスではなく、ユーザーのメールボックスをチェックします。これが空として表示される理由です。