順番
補記事項
その他配慮ポイント
- サービスやcronで実行される場合は上記ファイルを参照しない
- /etc/environmentで定義されている場合、それが読み込まれる(※1)
- crontabのPATHは/etc/crontab内に定義されている場合がある(※2)
- /etc/sudoersのsecure_pathはsudo実行時のみ上書きされる(cron実行時には評価されない)
- suコマンドに-オプション付けてログインしている時としていない場合でも変わる
- systemdのユニットファイルに定義されている場合がある
- /etc/locate.conf で定義されている場合がある
- それ以外にもスクリプトのどこかで上書きされている場合がある
- 追記されている場合もあれば、上書きされている場合もある
- 手動実行時とサービス等での実行時では変わる要素ありすぎるため、必ずテストすること
- 必ず、必ずテストすること(2度目)
- かくいう私も7年程前にやらかしてる…
- まだ抜かしている前提あるかもといつも不安になる
※1 参照される主なシーン
・システムサービス
・実行中のデーモン
※2 /etc/crontabに定義されている例(※3)
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin (以下略)