cron 実行時の環境変数

cron から送られるメールのヘッダには「X-Cron-Env」という行があって、これでコマンド実行時の環境変数を知ることができる。

X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <MAILTO=ao>
X-Cron-Env: <HOME=/home/ao>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=ao>
X-Cron-Env: <USER=ao>


新規ユーザを作って $HOME を空にしてログインしたときの環境変数

$ env
USER=noprofile
MAIL=/var/mail/noprofile
HOME=/home/noprofile
TERM=kterm-color
LOGNAME=noprofile
BLOCKSIZE=K
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:/home/noprofile/bin
SHELL=/bin/sh
FTP_PASSIVE_MODE=YES

MAIL、BLOCKSIZE、FTP_PASSIVE_MODE は /etc/login.conf で設定されていた。

残りは login(1) によって設定されるらしい。
su - でログインしたときもほぼ同じになるが、LOGNAME が定義されていないという違いが。