linuxでuserごとに環境変数を設定する時
~/.bash_profileとかでexportしてPATHの設置を入れたりしました。
ですが、ソフトウェアの実行用ユーザはホームディレクトリがなかったりしますね
その場合該当ユーザーに環境変数を設定する方法はありますか?
/etc/profileに環境設定をするとホームディレクトリがないユーザーにも反映されますか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
/etc/profile
だと影響範囲が広すぎるので、ソフトウェアを実行するシェルスクリプトの中で書くのが一般的な気がします。ただ、実行するファイルを編集するのは抵抗が有るかもしれません。その場合は、別ファイルに変数の設定を書いて シェルスクリプトから読み込むのが良いと思います。
例えば CentOS6 の Apache httpd では起動スクリプトで次のように設定ファイルを読み込んでます。
</etc/init.d/httpd から抜粋>
shellscript
1if [ -f /etc/sysconfig/httpd ]; then 2 . /etc/sysconfig/httpd 3fi
一方の設定ファイルにはShellの変数が設定されてます。
</etc/sysconfig/httpdの例>
(略) # # The default processing model (MPM) is the process-based # 'prefork' model. A thread-based model, 'worker', is also # available, but does not work with some modules (such as PHP). # The service must be stopped before changing this variable. # HTTPD=/usr/sbin/httpd.worker (略)
変数を子プロセスに引き継ぐ必要があれば export HOGE=piyo
の形式で書くと良いです。
投稿2016/08/16 09:18
総合スコア1351
0
man bashより:
bash が対話的なログインシェルとして起動されるか、 --login オプション 付 き の非対話的シェルとして起動されると、 /etc/profile ファイルが存在すれ ば、 bash はまずここからコマンドを読み込んで実行します。このファイル を 読 んだ後、 bash は ~/.bash_profile, ~/.bash_login, ~/.profile をこの順 番で探します。 bash は、この中で最初に見つかり、かつ読み込みが可能で あ るファイルからコマンドを読み込んで実行します。
(中略)
ログインシェルでない対話的シェルとして起動されると、 ~/.bashrc ファイル
があれば、 bash はここからコマンドを読み込み、実行します。この 動 作 は
--norc オプションで行わないようにできます。 --rcfile file オプションを
使うと、コマンドの読み込みと実行を ~/.bashrc からでなく file から行わせ
ることができます。( 例えばシェルスクリプトを実行するために) 非対話的に起動されると、 bash は環境変数 BASH_ENV を調べ、この変数が定義されていればその値を展開し 、 得 られた値をファイル名とみなして、そこからコマンドの読み込みと実行を行 います。
つまり、/etc/profile
はログインシェルで無いと読み込まれません。
ログインするのでしょうか?「ソフトウェアの実行用ユーザ」ということなのでログインしないのでは?
実際に実現したいこと(目的)を具体的に書いてもらうと、有用なアドバイスがもらえるかもしれません。
例えば、apacheプロセスに追加で環境変数を設定したいなら、apache起動スクリプトで設定します。
また、「ホームディレクトリが無いユーザー」というものはありません。すべてのユーザーにホームディレクトリがあります。そのあたりをご存じなければ、man 5 passwd
を読んだ上で、/etc/passwd
を眺めてください。
投稿2015/08/05 13:34
総合スコア84423
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
はい /etc/profile
に書けば反映されますよ。詳しくは下記ページを参考になさって下さい。
http://takuya-1st.hatenablog.jp/entry/20110102/1293970212
もし特定のユーザー、グループだけに設定したいなら if文 で限定することも出来ます。
投稿2015/08/05 10:37
総合スコア5936
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。