sudoする時にコマンドを実行するユーザの環境変数を読む方法

例えば、ジョブスケジューラではrootでの実行しかサポートされていないが、ある特定のユーザでの実行が必要であり、かつそのユーザの環境変数を読まなくてはいけない場合。

そんな場合にはsudo -iが重宝します。

sudo -iを使用しない場合

[vagrant@localhost ~]$ grep VAL .bash_profile
export VAL=/var/tmp
[vagrant@localhost ~]$ cat list.sh
#/usr/local/bin/bash

echo $VAL
[vagrant@localhost ~]$ ./list.sh
/var/tmp
[vagrant@localhost ~]$ su -
パスワード:
[root@localhost ~]# sudo -u vagrant /home/vagrant/list.sh

[root@localhost ~]#

単純にsudo -uした場合にはコマンド実行ユーザの環境変数は読まない。

sudo -iを使用した場合

[vagrant@localhost ~]$ grep VAL .bash_profile
export VAL=/var/tmp
[vagrant@localhost ~]$ cat list.sh
#/usr/local/bin/bash

echo $VAL
[vagrant@localhost ~]$ ./list.sh
/var/tmp
[vagrant@localhost ~]$ su -
パスワード:
[root@localhost ~]# sudo -u vagrant -i /home/vagrant/list.sh
/var/tmp

sudo -uに-iオプションを付けることで、環境変数を読み込むことが出来る。

【作業履歴】さくらVPSでの初期設定

さて、実は以前もやりましたが、今回またVPS使って色々と勉強したいなあと思い始めたのでさくらVPSを再度契約しました。

契約手順や標準OSのインストールについては割愛。(ボタンポチポチするだけだし…)

とりあえず、昨日行った設定を軽く。

 

まずはコントロールパネルからサーバを起動します。

f:id:nabe_jw:20150413233958j:plain

上の図では既に起動している状態ですが気にせずに。

 

続いてコンソールからVNCコンソール(Java Applet版)を選択。

f:id:nabe_jw:20150413234137j:plain

別にHTML5版を選択してもいいんですが、ディスプレイの解像度によっては画面が見にくいのでJava Applet版を選択しています。この辺は環境にあわせて。

 

しばらくすると下記のウィンドウがポップアップされてきます。

f:id:nabe_jw:20150413235604j:plain

「login:」にはroot、「Password:」には設定したパスワードを入れます。

後は設定作業ですね。

基本的な設定については下記を参照ください。

help.sakura.ad.jp

上記に合わせて、今回はいくつか追加で手順を実施しています。

実施したのは下記です。

  1. /etc/ssh/sshd_configの編集
  2. /etc/sysconfig/i18nの編集

  3. deamon(auditd)の起動

設定内容はまた次回。