$JAVA_HOME
「/etc/environment」に変数を作成しました。
JAVA_HOME="/usr/lib/jvm/jdk"
PATH="...bla bla bla:$JAVA_HOME/bin"
また、すべてのユーザーがJavaになじむように/etc/profile
編集しました。source /etc/environment
そして、ディレクトリ自体はアクセスのために755に設定されます。
印刷物はroot
次のとおりですenv
。
LANG=C.UTF-8
SUDO_GID=1000
USERNAME=root
JAVA_HOME=/usr/lib/jvm/jdk
SUDO_COMMAND=/bin/su
USER=root
PWD=/home/ssuser
HOME=/root
SUDO_USER=ssuser
SUDO_UID=1000
MAIL=/var/mail/root
TERM=xterm
SHELL=/bin/bash
SHLVL=2
LOGNAME=root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:$JAVA_HOME/bin
ssuser
ただし、-ingなしで同じ操作を実行すると、sudo
環境変数は$JAVA_HOME
実際のパスに展開されます。
SSH_CONNECTION=193.128.134.115 18497 10.1.4.4 22
LESSCLOSE=/usr/bin/lesspipe %s %s
LANG=C.UTF-8
JAVA_HOME=/usr/lib/jvm/jdk
XDG_SESSION_ID=2
USER=ssuser
PWD=/home/ssuser
HOME=/home/ssuser
SSH_CLIENT=193.128.134.115 18497 22
XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop
SSH_TTY=/dev/pts/0
MAIL=/var/mail/ssuser
TERM=xterm
SHELL=/bin/bash
SHLVL=1
LOGNAME=ssuser
XDG_RUNTIME_DIR=/run/user/1000
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/jdk/bin
LESSOPEN=| /usr/bin/lesspipe %s
/etc/sudoers
これはenv_varリセット/保存設定の設定とは関係ありません。もう別のコンピュータで試してみましたが、うまく動作しました。
なぜこれが起こるのか少し混乱しています。また、私が見つけた非常に奇妙なことは、シングルセッション中にsudoユーザーにパスワードを求めるメッセージが表示されないことです。確認してみると、/etc/sudoers
パスワードを聞くように正しく設定されていますroot
。
セッションを閉じてもう一度開いてみました。ルートではなく一般ユーザーとして扱うことができます。また、再起動しても何の変化もありません。
答え1
私の知る限り、シェルスクリプトではない/etc/environment
ので、ソースコードを入れる必要はありません。/etc/profile
ペアのみを含める必要がありますkey=value
(含まれていません"
)。 Plusはここのような変数を置き換え/etc/environment
ません$JAVA_HOME
。
/etc/environment
起動時にロードされるため、再起動する必要があり、すべてのユーザーが使用できます。
これ引用する以下の場合は、変数拡張が機能しないという説明が具体的に示されています/etc/environment
。
注:変数の拡張は/ etc / environmentには影響しません。