sudo を使用した ssh コマンドからユーザーの変数値にアクセスする
Issue
- A と B の 2 つのシステムがあります。
- System B には test1 と userX の 2 つユーザーがあります。どちらも
sudo
ユーザーです。 - System A からスクリプトを実行し、userX の信用情報を使用して System B にアクセスし、
sudo
を実行し、コマンドラインオプション-c
を追加したsu
を実行する必要があります。 - この操作を、人的介入なく自動的に実行できるようにスクリプトを作成します。
- このスクリプトから test1 ユーザーの変数にアクセスするにはどうすれば良いですか?
- この変数はグローバルではありません。以下のように、変数は
.bash_profile
に宣言されています。
[test1@localhost ~]$ cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
.~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
VAR=test1
export PATH VAR
- スクリプトに追加するコマンドは以下のようになります。
# ssh userX@192.168.0.254 sudo su - test1 -c 'echo $VAR'
- ここで System B は 192.168.0.254 なので、変数
VAR
はその中の値を表示するはずです。
Environment
- Red Hat Enterprise Linux 6
sudo
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.