Linux

如何為 Debian 中的所有使用者設置 PATH?

  • April 3, 2020

我有一個 Debian Lenny 伺服器,我希望www-data使用者/usr/local/zend/bin在它的 PATH 中,所以它可以在 cron 中執行一個腳本作為www-data.

如何添加/usr/local/zend/bin到 PATH,所以www-data可以在 中執行文件/usr/local/zend/bin

設置 PATH 的第一個位置是/etc/login.defs. 有一個針對 root 的設置和一個針對其他所有人的設置。

另一個可以定義環境變數的地方是/etc/environment. 這些設置將適用於所有人(你不能在那裡編寫任意的 shell 程式碼)。

可以定義環境變數的第三個地方是/etc/profile. 在那裡你可以編寫任意的 shell 程式碼。如果您需要特定於使用者的設置,則有相應的 per-user file ~www-data/.profile。但這僅適用於控制台互動式登錄;特別是它不適用於 cron 作業,除非它們明確 source /etc/profile

如果您只需要PATH在使用者 crontab 中進行該設置,則可以將其寫在 crontab 的開頭。請注意,您需要完整列表 ( PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/zend/bin),不能使用變數替換 (PATH=$PATH:/usr/local/zend/bin在那裡不起作用)。

引用自:https://serverfault.com/questions/166383