最新閲覧日:

作成したshellを作動させるために投入したディレクトリまでのpathを以下のようにして、投入しました。

export PATH=$PATH:/home/myname/cgi-bin/

2点ほど教えていただきたいのですが、一度投入したSearch pathを解除する方法と、このパスを電源を再投入した後も効力を持たせるにはどこに書き込めば良いでしょうか。/root/.bash_profileが在りますが、ここでよろしいでしょうか。使用環境はRedHat Linux v7.1です。

A 回答 (2件)

おひさしぶりです、yostyです。



最初の質問ですが、環境変数PATHをを元に戻す方法ということでしょうか。
下の方の書かれた方法ですと、元々設定されていたPATHまで消えてしまいます。
まず、
echo $PATH
としてください。すると、
/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/myname/bin:/home/myname/cgi-bin/
のような表示が出ると思います。
この「:」で区切られたそれぞれがディレクトリですので、
最後に追加した:/home/myname/cgi-bin/だけを除いて、
export PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/myname/bin
のようにしてやると、PATHが元のように指定し直されます。

なお、PATHという環境変数の存在自体を消すには、
「export PATH=」ではなく、「unset PATH」とします。

次に、起動時の自動設定は、.bash_profileが一般的でしょうが、
rootに適用するのか、mynameさんに適用するのかでファイルの場所が違います。
/root/.bash_profileでは、当然、rootとしてログインしたか、
- または -l 付きのsuでrootになった場合しか適用されません。

mynameさんに適用したい場合は、/home/myname/.bash_profileに書いてください。
redhat7.1ですと、ちょうど
PATH=$PATH:$HOME/bin という行がありますので、そこを
PATH=$PATH:$HOME/bin:/home/myname/cgi-bin
とするといいでしょう。
細かいことですが、一般的にPATHのディレクトリ指定には最後に「/」は付けません。

以降は、補足として...
1行目に、shellと書かれていますが、
PATHを見ると、cgi-binに置かれているようです。
cgi-binはもともと、apacheのScriptAlias指示子で、
例外的にCGIが使えるディレクトリとして指定されるものです。
シェルスクリプトは、ホームディレクトリ直下に、
binというディレクトリを作ってまとめておくことが多いです。
実際、redhat7.1でも、$HOME/binにパスが通っています。
(ただし、ディレクトリ自体は作られていません)
もし、shellで書かれたCGIということでしたら、
WEBから利用するだけの場合はPATHの設定の必要はありません。

なお、管理用のシェルスクリプトなどは、
rootでしか実行できないコマンドを利用することも多く、
root所有が一般的だと思います。
redhat7.1のapacheは標準でsuexecがonですが、
委譲できるアカウントのuidが100以上に固定されているため、
root権限でCGIが実行されることはありません。
(rootがアクセスしても、rootでしか実行できないコマンドは失敗します。)
ソースから普通にsuexecがoffでインストールした場合、
全てのCGIはnobody権限で動きますので、さらに安全です。
また、スクリプトはsuidも立ちませんので、
一般ユーザがコマンドラインからroot権限で実行ということもできません。
したがって、apache自体がroot権限として起動するといった特殊な設定さえしなければ、
下の方が書かれているような危険性はありません。
    • good
    • 0
この回答へのお礼

Yosty様、いつも御世話になります。説明が詳細で行き届いておりまして、Linux初心者には大変わかりやすいものとなっております。どのように学習されたのかお聞きしたいものです。今後ともよろしくお願い申し上げます。有り難うございました。

お礼日時:2002/02/21 09:30

> 一度投入したSearch pathを解除する方法



ちょっとご質問の意味がよくわからないのですが、これは単に
  export PATH=
で良いのではないでしょうか。

> このパスを電源を再投入した後も効力を持たせるにはどこに書き込めば良いでしょうか。

おっしゃるように .bash_profile で良いと思いますが、root 権限で CGI を動作させておられるのでしょうか?
これは、極めて危険です。
CGI 実行用のアカウントを別に作って、そのユーザの権限で実行するようにしましょう。
    • good
    • 0
この回答へのお礼

ちょっとご質問の意味がよくわからないのですが、これは単に
  export PATH=
で良いのではないでしょうか

export PATH=$PATH:/bin/xxxと言う方法でpathを設定しました。同じ設定を解除するにはexport PATH=とすれば良いと言うことでよろしいのでしょうか。

CGIの危険性に付いてコメントいただきまして有り難うございます。今後もよろしく御願いいたします。

お礼日時:2002/02/20 09:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ