他のユーザーがrootで定義されている環境変数にアクセスする方法は? [コピー]

他のユーザーがrootで定義されている環境変数にアクセスする方法は? [コピー]

testuserにenv変数を定義しましたrootroot次のコマンドを使用して内部ユーザーにアクセスできます。

echo $test

これで別のユーザーに切り替えますmyuser。これで変数にsu - myuserどのようにアクセスできますか?testmyuser

私がやろうとしていることの例は次のとおりです。 ここに画像の説明を入力してください。

答え1

使用する場合GNU バッシュFOO(Linuxのログインシェルとして)といくつかの環境変数を設定したい場合ユーザーごと文字列値の場合は、次のようにファイルの末尾に数行を追加barできます。/etc/bash.bashrc

 # to be added in /etc/bash.bashrc
 export FOO=bar

バラより§6.2 Bash起動ファイルもっと学ぶ。

もちろん、ファイルを編集するには(たとえば、/usr/bin/sudo /usr/bin/emacs /etc/bash.bashrc 一部の端末で一度)、root権限が必要です/etc/bash.bashrc

次のような他のログインシェルを使用することもできます。扱いにくいまたは。パッケージをインストールして使用する必要があります。chsh(1)項目の変更/etc/passwd(参照:パスワード(5)そして/etc/shellsファイルに書き込まれたシェル(5))。彼らは同じことをする別の方法を持っています。

ファイルが/root/.bashrc誰でも読める場合(サイバーセキュリティのリスクがある可能性がある)、次のものを使用できます。eval組み込みそして正規表現(1)またはダム(1)その上に以下を使用してください。コマンドの置き換え

[email protected]詳細については、電子メール(フランス、パリの近く)を介してお問い合わせください。

答え2

これは複雑な方法です。

root_test=$( sudo su -l -c 'printf "%s\n" "$test"' )

あるいは、ルートのシェルがbashであるとします。

eval "$(sudo su -l -c 'declare -p test')"

どちらにしても必要です~になるルートログイン環境では、ルートは変数値にアクセスします。

関連情報