DebianのすべてのユーザーにPATHを設定する方法は?


25

私はDebian Lennyサーバーwww-dataを持っています。ユーザー/usr/local/zend/binにそのPATH を持たせたいので、cronでスクリプトを実行できwww-dataます。

/usr/local/zend/binPATH に追加するにはどうすればwww-dataファイルを実行できます/usr/local/zend/binか?

回答:


40

PATHが最初に設定される場所は/etc/login.defsです。rootの設定と他の全員の設定があります。

環境変数を定義できる別の場所はです/etc/environment。これらの設定は全員に適用されます(任意のシェルコードをそこに書くことはできません)。

環境変数を定義できる3番目の場所はです/etc/profile。そこで、任意のシェルコードを記述できます。ユーザー固有の設定が必要な場合は、対応するユーザーごとのファイルがあります~www-data/.profile。ただし、これはコンソールの対話型ログインにのみ適用されます。特に、明示的にsourceしない限り、cronジョブには適用されません/etc/profile

PATHユーザーcrontabでその設定のみが必要な場合は、crontabの先頭に設定できます。完全なリスト(PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/zend/bin)が必要なことに注意してくださいPATH=$PATH:/usr/local/zend/bin。変数置換を使用することはできません(そこでは機能しません)。


---- /etc/login.defsなどをどのようにリロードしますか?
-MrCalvin

ログインして@MrCalvin。
ジル「SO-停止されて悪」

1
/etc/login.defs無視される理由はありますか?ENV_PATH.bashrcが読み込まれると、更新して$ PATHをエコーし​​ます。途中のどこかで変更されているか、古い値が表示されているため更新されていません。コンピューターを再起動しました-そうではありません。
アナン

@Annanチャンスはどこかに変更されていることです。私の答えはsystemdの前の2010年に書かれたことに注意してください。システムがsystemdを使用している場合PATH、他の方法に加えて、または他の方法の代わりに定義する独自の方法があります。
ジル 'SO-悪であるのをやめる'

8

ルートを除くすべてのユーザーのパスを設定するには、編集/etc/profileまたはを選択し/etc/enviromentます。ルートまたは個々のユーザーの.bashrc場合.bash_profileは、それぞれ自分のまたはホームディレクトリで編集します。を追加しPATH=$PATH:/new/location/ます。


1

に負担をかけずにすべてのユーザーにvarを設定するにはprofile、次の/etc/profile.dようなディレクトリに独自の小さなスクリプトを追加します。

echo 'PATH="/usr/local/zend/bin:$PATH"' > /etc/profile.d/zend_path.sh

その後、再ログインします。


1

nano / etc / profile

これらの行をファイルの最後に追加します。

JAVA_HOME = / opt / jdk-12.0.1をエクスポートします

export MAVEN_HOME = / opt / apache-maven-3.6.1

export M2_HOME = / opt / apache-maven-3.6.1

export M2 = / opt / apache-maven-3.6.1 / bin

export PATH = $ JAVA_HOME / bin:$ M2:$ PATH

ファイルを保存します。再起動するか、以下のコマンドを使用します。

ソース/ etc / profile

設定をテストします。

echo $ JAVA_HOME

javac --version

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.