
我剛剛使用以下語法發送了本地郵件:
echo "Testing" | mail -s "This is just a test" root@localhost
然後我使用以下命令登入 root:
sudo -i
並檢查我的郵件。消息就在那裡。如果我重複郵件命令並使用以下命令登入 root:
su root
郵件不在我的信箱。在這兩種情況下,我都登入 root 帳戶,那麼這裡發生了什麼?這是 CentOS 7 的相當新的基本安裝。
我什至通過使用 su 登錄再次檢查,當它不存在時,我註銷並使用 sudo -i 重新登錄,果然,郵件就在那裡。
答案1
造成此行為的原因是MAIL
環境變數。當你切換到 root 時
sudo -i
您模擬初始登入 ( -i
) 並將MAIL
環境變數設為/var/spool/mail/root
。當你切換到 root 時
su root
環境MAIL
變數保持其舊值,即/var/spool/mail/jo
命令mail
檢查使用者的郵箱而不是 root 的郵箱。這就是為什麼你看到它是空的。