• 締切済み

全ユーザのパスの指定

RedHat7.1を使用しています。 質問なのですが あるパッケージをインストールして それが/usr/local/hogeというディレクトリに hogeという実行ファイル(つまり/usr/local/hoge/hoge)と pluginなどのファイル(hoge実行時に読み込まれる)ができるときに ユーザにそのhogeを実行させるにはどうすればいいでしょうか? 1.ユーザに/usr/local/hoge/hogeと打たせる これは少し避けたいです。 2./usr/bin以下にシンボリックリンクを作る 普通はこの方法をすぐ思いつきますが 実行時、他の必要なファイル(plugin)を /usr/binの中で探してしまい、エラーがでます。 3.全ユーザのパスを/usr/local/hogeに張る 結局、こうすることにしたのですが 全ユーザのパスを一度に変更する事は可能なのでしょうか? また、どうすればよいのでしょうか? あと、みなさんはこの場合、どんな方法をとっていますか?

みんなの回答

  • ken2
  • ベストアンサー率36% (86/235)
回答No.5

ユーザーのホームディレクトに.bash_profileというファイルがあります。 その中のPATHを以下のようにしてください。 # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=/usr/local/sbin:/usr/sbin:/sbin:$PATH:$HOME/bin BASH_ENV=$HOME/.bashrc USERNAME="root" export USERNAME BASH_ENV PATH ちなみにloginしなおさないと反映しませんよ。

すると、全ての回答が全文表示されます。
  • h-kiku
  • ベストアンサー率50% (22/44)
回答No.4

うまくいきませんでしたか.(_o_) > どこか他にもパスに関連する設定ファイルがあるのでしょうか? 考えられるのは、  /etc/profile  /etc/bashrc  /etc/profile.d/*.sh  ~/.bashrc  ~/.bashrc_profile ですね. これらのファイルのどこかに書かれているのでは ないかと思います.(推測) == > しかしbashをよく用いるので、aliasは使えないようですね。 いや、bash でも alias は使えたと思います. alias hoge='/usr/local/hoge/hoge'

すると、全ての回答が全文表示されます。
  • pasta500g
  • ベストアンサー率46% (30/65)
回答No.3

csh.loginにaliasを定義してはどうでしょう。 alias hoge /usr/local/hoge/hoge

yuhei-lab
質問者

補足

なるほど、いいアイデアですね しかしbashをよく用いるので、aliasは使えないようですね。

すると、全ての回答が全文表示されます。
  • h-kiku
  • ベストアンサー率50% (22/44)
回答No.2

bash を利用している場合: /etc/profile に  PATH=....... と書かれている部分に  /usr/local/hoge を追加する. tcsh(csh)を利用している場合: /etc/csh.login に  setenv PATH ..... と書かれている部分に  /usr/local/hoge を追加する. 私は、こういう方法で対処しています. ただ、各ユーザが自分の環境設定ファイル (~/.bashrc ~/.cshrc など)を書き換えていると ダメかもしれません. (パスの設定を上書きしてしまっている場合など)

yuhei-lab
質問者

補足

なるほど、最初思いついた方法の3に該当する答えですね ありがとうございます。 というわけで設定してみたのですが、 なぜかrootでしか有効になりません。(csh,bash共に) もちろん、新しくシェルを立ち上げなおしました。 試したユーザは.cshrcは使っておらず bashrcだけを使っており そこではパスの設定は特に行ってないみたいです ユーザのパスには/opt/binなどが設定されていますが /etc/profileにも、/etc/csh.loginにも /opt/binへのパスは設定していないみたいです どこか他にもパスに関連する設定ファイルがあるのでしょうか?

すると、全ての回答が全文表示されます。
  • bagyo
  • ベストアンサー率40% (16/40)
回答No.1

こんにちわ。 例えば、一般的にパスが通っているところ(/usr/local/bin)などに、同名のシェルスクリプトなどを作成して、この中でパスを設定してから、/usr/local/hogeを絶対パスで実行するというのはいかがでしょうか?

yuhei-lab
質問者

補足

なるほど、ありがとうございます いい方法ですね 最初、一度そのスクリプトを実行したらそれ以降PATHの環境変数が 増えちゃうんじゃないかなとおもったのですが 考えてみればスクリプトで新しく起動したシェルで実行するので もともとのシェルには影響ないですね バッチリだと思うんですが、もう少し試してみます。

すると、全ての回答が全文表示されます。