sudoers を使用すると、JRE_HOME の環境変数は保持されません。

sudoers を使用すると、JRE_HOME の環境変数は保持されません。

オペレーティングシステム:Linux(Debian 8)環境の詳細:

  1. 私たちはlxdeとuxterm
  2. ctrl + Alt + F6が無効になるまで仮想コンソールフォーム。
  3. 利用可能なユーザーの総数ユーザー1、ユーザー2、ユーザー3

デフォルトのシステム設定は自動ログインですユーザー1script()を介してユーザー端末を起動しますuxterm

ユーザーが LXDE で特殊な組み合わせを押すと、画面で User2 をログイン名として Uxterminal を呼び出します。ログインに成功すると、user2 コンソールを使用できます。

役割は非常に制限されており、現在の運用シナリオに必要な3番目のユーザーがいます。

ユーザーのBASHプロファイルを作成するためにsudoerswithオプションNOPASSWDに情報を追加しました。

etc/sudoers

User_Alias PRIVILEGEDUSER = user1,user2
Runas_Alias TARGETUSER = user2,user3
PRIVILEGEDUSER ALL=(TARGETUSER) NOPASSWD: /bin/bash

私たちもenv_keep追加しましたDefaults

Defaults        env_reset
Defaults        env_keep += "JRE_HOME"
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

このオプションを使用すると、ユーザーを切り替えようとしたときにJRE_HOME設定されません。さらに追加JRE_HOMEetc/.profileシステムで利用可能なすべてのユーザーを手動でテストすることは役に立ちません。

JRE_HOME=/usr/lib/jvm/java-7-openjdk-i386/jre
export JRE_HOME

JRE_HOME移行プロセス中にいくつかの設定手順が必要ですsudo -u

答え1

環境変数をグローバルに設定するには、以下に説明するようにいくつかの方法があります。私のLinuxシステムのすべてのユーザーに環境変数を設定する方法または環境変数を恒久的に設定する方法

私にとっては、.sh以下のファイルを入れるのはうまくetc/profile.dいきます。

答え2

次のコマンドを使用して、/ etc / sudoersファイルで特定のユーザーの特定の環境変数を設定できます。

Defaults:myuser-spec env_file=/etc/sudovars_for_myuser

たとえば、/etc/sudovars_for_myuserには次のものが含まれます。

JRE_HOME=/usr/lib/jvm/java-7-openjdk-i386/jre

関連情報