web-dev-qa-db-ja.com

DebianのすべてのユーザーのPATHをどのように設定しますか?

Debian Lennyサーバーがあり、www-dataユーザーのPATHに/usr/local/zend/binを含めると、cronでスクリプトをwww-dataとして実行できます。

/usr/local/zend/binをPATHに追加して、www-data/usr/local/zend/bin内のファイルを実行できるようにするにはどうすればよいですか?

27
Sandra

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/を追加します。

8
David Rickman

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

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

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

1
user3132194

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

1
Ryan Augustine