Debian Lennyサーバーがあり、www-data
ユーザーのPATHに/usr/local/zend/bin
を含めると、cronでスクリプトをwww-data
として実行できます。
/usr/local/zend/bin
をPATHに追加して、www-data
が/usr/local/zend/bin
内のファイルを実行できるようにするにはどうすればよいですか?
PATHが設定される最初の場所は/etc/login.defs
です。 root用の設定と他のすべての人用の設定があります。
環境変数を定義できるもう1つの場所は/etc/environment
です。これらの設定はすべてのユーザーに適用されます(そこで任意のシェルコードを作成することはできません)。
環境変数を定義できる3番目の場所は/etc/profile
です。そこで任意のシェルコードを書くことができます。ユーザー固有の設定が必要な場合は、対応するユーザーごとのファイル~www-data/.profile
があります。ただし、これはコンソールの対話型ログインにのみ適用されます。特に、明示的に/etc/profile
をソースとしない限り、cronジョブには適用されません。
ユーザーのcrontabでそのPATH
設定のみが必要な場合は、crontabの先頭に書き込むことができます。完全なリスト(PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/zend/bin
)が必要であり、変数置換を使用できないことに注意してください(PATH=$PATH:/usr/local/zend/bin
はそこで機能しません)。
ルート以外のすべてのユーザーのパスを設定するには、/etc/profile
または/etc/enviroment
を編集します。ルートまたは個々のユーザーの場合、ホームディレクトリでそれぞれ.bashrc
または.bash_profile
を編集します。 PATH=$PATH:/new/location/
を追加します。
profile
に負担をかけずにすべてのユーザーにvarを設定するには、次のように/etc/profile.d
ディレクトリに独自の小さなスクリプトを追加します。
echo 'PATH="/usr/local/zend/bin:$PATH"' > /etc/profile.d/zend_path.sh
その後、再ログインします。
nano/etc/profile
次の行をファイルの最後に追加します。
エクスポートJava_HOME =/opt/jdk-12.0.1
エクスポートMAVEN_HOME =/opt/Apache-maven-3.6.1
エクスポートM2_HOME =/opt/Apache-maven-3.6.1
エクスポートM2 =/opt/Apache-maven-3.6.1/bin
エクスポートPATH = $ Java_HOME/bin:$ M2:$ PATH
ファイルを保存します。再起動するか、次のコマンドを使用します。
ソース/ etc/profile
設定をテストします。
エコー$ Java_HOME
javac --version