OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

サーチPathに付きまして

  • 困ってます
  • 質問No.220790
  • 閲覧数83
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 87% (491/560)

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

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

2点ほど教えていただきたいのですが、一度投入したSearch pathを解除する方法と、このパスを電源を再投入した後も効力を持たせるにはどこに書き込めば良いでしょうか。/root/.bash_profileが在りますが、ここでよろしいでしょうか。使用環境はRedHat Linux v7.1です。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.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権限として起動するといった特殊な設定さえしなければ、
下の方が書かれているような危険性はありません。
お礼コメント
cincinnati

お礼率 87% (491/560)

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

その他の回答 (全1件)

  • 回答No.1
レベル12

ベストアンサー率 40% (237/589)

> 一度投入したSearch pathを解除する方法 ちょっとご質問の意味がよくわからないのですが、これは単に   export PATH= で良いのではないでしょうか。 > このパスを電源を再投入した後も効力を持たせるにはどこに書き込めば良いでしょうか。 おっしゃるように .bash_profile で良いと思いますが、root 権限で CGI を動作させておられるので ...続きを読む
> 一度投入したSearch pathを解除する方法

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

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

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

お礼率 87% (491/560)

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

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

CGIの危険性に付いてコメントいただきまして有り難うございます。今後もよろしく御願いいたします。
投稿日時 - 2002-02-20 09:10:20
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ