• ベストアンサー

rootにpathを通す方法

こんにちは、kaituyoと申します。 Solaris8でのpathの通し方の質問です。一般ユーザーの場合ですとHOMEディレクトリの中の「.cshrc」ファイルにpathを書きこみシェルを再実行させればコマンドが使えるようになりました。しかし、rootでログインすると使えません。それで、rootにもpathを通そうかしたら「.cshrc」が見つかりません。  rootでpathを通してコマンドを実行できるようにはどうしたらいいのでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • madman
  • ベストアンサー率24% (612/2465)
回答No.2

rootユーザの起動shellが/bin/cshではなく、/bin/shになっていませんか? rootがB-Shellになっていませんか、ということです。 .cshrcはC-Shell用の起動スクリプトです。 B-Shellの場合は、 .profileです。このファイルのB-Shellの記述方法で書いてください。 もし、C-Shellに変更するのであれば、/etc/passwdファイルを書き換えてください。 ・B-Shellでの環境変数の設定の方法 PATH=/opt/gnu/bin:/usr/local/bin export PATH ・/etc/passwd root:x:0:1:Super-User:/:/sbin/sh 一番後ろの/sbin/shを/sbin/cshに書き換える。 /sbinは自分の環境に合わせて変えてください。 また、rootユーザのホームディレクトリは[/]です。

kaituyo
質問者

お礼

お返事ありがとうございます。 shellが/bin/shに、なっていました。 C-shellに変更したいので、 /etc/passwd の変更にチャレンジ してみます。

その他の回答 (2)

  • ysk6406
  • ベストアンサー率40% (237/589)
回答No.3

No.2 の回答に、ちょっと補足です。 root のホームディレクトリは、「/」とは限りません。 ホームディレクトリが「/root」なんていう Unix もあります。 当然、その Unix では /root の下に .cshrc や .profile 等を設定します。 / には、そのようなファイルは何もありません。 以上、ご参考まで。

kaituyo
質問者

お礼

なるほど、いろんなものがあるんですね。 うーーん。これだから、難しいな!でも、勉強しがいもあります。 ありがとうございました。

  • ysk6406
  • ベストアンサー率40% (237/589)
回答No.1

Solaris8 は使ってないので詳しくはわかりませんが、root にもホームディレクトリがあるので、そこに .cshrc を置いて path の設定をすれば良いはずです。 root のホームディレクトリは、root で cd; pwd とやるか、/etc/passwd の root のエントリを見れば分かります。 それとも…「.cshrc が見つからない」ということは、もしかして root の時は csh でなく他のシェル(sh とか)が走っているのではありませんか? 例えば、sh なら .cshrc でなく .profile、bash なら .bash_profile 等のファイルに path を設定する必要があります。

kaituyo
質問者

お礼

ご回答ありがとうございます。 おっしゃるとおり、shで立ち上がっているようです。 それでも、.profileも見つかりませんし、admintoolでrootの起動シェルをcshに変えようとしても拒否されます。 rootのユーザー情報はどのように変更するのかご存知でしたら、教えてください。

関連するQ&A

  • Linuxでシェルスクリプトがフルパスだと実行できない

    Linuxでシェルスクリプトがフルパスだと実行できない こんにちは 現在linuxでシェルスクリプトを記載していて、やっと出来た!と思ったら、なぜかフルパスで実行すると失敗します。 中身は例えば #!bin/sh echo "hello" とし、ファイル名をtest.shとします。 実行時にカレントからだと上手くいきます。 ./test.sh ただし、フルパスで実行するとうまくいきません。 ./home/user/test.sh エラーは以下 bash: ./home/dv3/tet.sh:No such file or directory 所有者はrootでグループもrootにしてあります。 シェルの権限は755にして、rootで実行しています。 なぜカレントだと上手くいき、フルパスだと上手くいかないのでしょうか? パスが必要なコマンドも入っていないのに。。。 どなたかご教授いただけると幸いです。 宜しくお願い致します。

  • リモートシェルでファイルをrootで実行させる方法

    UNIX1マシンから一般ユーザーで、ramshを使って UNIX2マシンのシェルをrootで実行させる、という仕組みを 自動化させたいのですが、パスワードが聞かれるためうまくいきません。 何か良い方法はあるでしょうか? もしくは一般ユーザーがUNIX2のシェルを実行し、その中で suコマンドを使ってrootであるファイルを実行する、というパターン でもいいのですが。 宜しくおねがいします。

  • UNIXシェルの設定ファイルについて

    solaris8使用してるのですが2つほど質問があります。 1. rootのシェルの設定ファイル(.cshrcとか.profileにあたるもの?) ってどこにあるのでしょうか? su でroot になったときや、rootでcshと打ち込んだときなど はどこのファイルの設定を読むのでしょうか? 2. 一般ユーザを新規に追加した場合にその新規ユーザの シェルの設定ファイルってどこからもってきたものなんでしょうか? デフォルトのファイルのようなものをコピーしてくる感じなのでしょうか? ご存知の方よろしくお願いします。

  • .cshrc ファイルについて

    新しくUNIXのパソコンを引き継いだのですが、分からない事だらけで困っています。 どうか、教えて下さい。 聞きたいことは 1. ホームディレクトリ下に.cshrcファイルがないけど、作ったほうが良いのか? 2. 作成する場合はどの様にすればよいのか? 3. rootユーザにも『passは通し』た方が良いのか? 等です。 状況などを 説明をさせて頂きます。 『intelフォートラン コンパイラ』をインストールする必要があり、インストールまでは出来た(と思う)のですが、 手引きのページに、以下の記述がありました。 > この後、.cshrc等にpathの設定をする。設定の書き方の例はデフォルトの/opt/intel/fc/9.0にインストールした場合、 > /opt/intel/fc/9.0/bin/ifortvars.csh や > /opt/intel/fc/9.0/bin/ifortvars.sh > に記載されているので、参照すること。 > .cshrcの場合、このifortvars.cshに記載されているのをそのまま.cshrcに加えれば良い。 > 同様に、 > /opt/intel/idb/9.0/bin/idbvars.csh > /opt/intel/idb/9.0/bin/idbvars.sh > の内容を加えることで、デバッガーのpathも通しておく。 .cshrcファイルがどの様な物なのかも分からなく、調べるうちにそのユーザの設定ファイルである事は分かりました。 それで調べたところ、ログインしているユーザーのホームディレクトリには.cshrcファイルがありません。 su に切り替えてfind コマンドで検索したところ、rootフォルダの下に同名のものが1つありました。 また別のページに > 『今回紹介する技は、csh (C シェル、ECC の UNIX 環境でのデフォルトのシェル) の設定ファイルの編集です。 > これを編集するだけで、シェルの挙動を変更して日頃の生活を快適にすることができます。 > ただし、下手をするとログインできなくなるので、注意深く実行してください。 』 > 『.cshrc はホームディレクトリにおいておくものです。もしなければ、作ってください。..』 なんて記述もあり、これから毎日使っていくものなので、作くるべきかな?と思っているのですが、 どのようにしたらいいのか分かりません。 rootフォルダ下の.cshrcファイルをコピーしてきたら良いのでしょうか? 環境は、2台のPCをLANで繋いでおり、それぞれ CentOS が入っています。 普段はマスターでログインし、スレーブはあまり使ってません。 マスターは部屋のサーバーとなっているようです。 ログイン出来なくなるのがとても怖いのです。 自分だけのユーザーを作ったほうが良いのでしょうか? 色々調べてはいたのですが、確信を持てないので質問させて頂きました。(Linux は種類が多いので..) どうか教えて下さい。よろしくお願いいたします。

  • PATH設定について

    PATHの設定について質問します。 他の質問で同じようなものがあったのですが、どうも よく分からない為、教えて下さい。 PATHの設定をスタートアップファイルに追加したいのですが、シェルによって違うのは分かったんですが。 具体的にわかりません。bashの場合は、ホームディレクトリに.profileを作成するのでしょうか。また.cshrcとか.tchrcとか.loginとか関係しているのでしょうが、どこをどう追加すればいいのか教えていただけませんでしょうか。初心者ですみませんが宜しくお願いします。

  • lsでのファイル名・パスのフルパス取得

    環境:Solaris10 lsコマンドでディレクトリ、ファイル名の一覧を取得しようとしています。 条件としては 1.対象は全てのディレクトリ・ファイル(ls -R) 2.実行結果はアクセス権・所有者の情報も含む(ls -lの結果のような) 3.ディレクトリ・ファイル名ともにフルパスで表示 この上記3点を満たそうとして、 ls -dlR / と実行してみましたが、この場合Rスイッチが有効になりませんでした。 OS標準コマンドでこの3点を満たすことは出来るのでしょうか?

  • ロケールをutf8からsjisにするとログイン時に「イベントがありません」エラー

    こんにちは。私はLinux CentOS5を使っています。 あるユーザ(aaaとする)でログインシェルを/bin/cshにしています。 システムロケールをUTF8からSJISに変更すると(i18nファイルを変更しました)、 [aaa@centos ~]$ su - aaa パスワード: ~: イベントが見つかりません. となってcshスクリプトなどが使えず、/home/aaa/.cshrcも正常に読み込まれないようなので、/home/aaa/.cshrcで書いているPATHなどが通っていません。 わからないのは、システムロケールがUTF8の時は問題なくログインして.cshrcもちゃんと読めていたのに、SJISにするとエラーが起こることです。 どうかよろしくお願いします。

  • rootで.を指定しない場合のカレントは?

    ときどきrootユーザでログイン後、シェルにて「./」を付けずにカレントディレクトリ のファイルを実行しようとすると存在しませんとエラーが出る場合があります。 どういった場合に「./」をつけないといけないか? その場合、どこのディレクトリのファイルが参照されているのか? こちらの疑問が解決できずに困っています。

  • rootでログインできない

    Linuxでchownを行うシェルを作成しました。 ここでミスってしまい、/以下のほとんどのファイルをhttpd(webサーバのユーザ)にしてしまいました。 復旧は無理とあきらめ、再インストールしようと思います。ここで何とか、必要なファイルを取り出そうとしています。 そこで、すべてのファイル所有(/以下)をrootへ変更し、権限を777にして、リブートすれば何とかなると、あまり深く考えずに実行してしまいました。 ところが、リブート後、rootでログインできなくなってしまいました。 通常ユーザではログインできるのですが、suもできません。これでは、フロッピーをマウントすることもできず、どうしていいかお手上げ状態です。 どなたか、アドバイスいただきたく、お願いいたします。

  • 誤って/home配下を削除してしまいました;;

    CentOS5.0で/home/hogehoge配下にMaildir/とMaildir /とういうディレクトリがあったので、Maildir /を削除しようと思い以下のコマンドを実行しました。 [root@111 ~]# cd /home/hogehoge [root@111 hogehoge]# rm -rf Maildir / 後日hogehogeユーザでログインしたところ, -bash: dircolors: command not found -bash: /usr/bin/id: No such file or directory -bash: [: =: unary operator expected -bash: /sbin/consoletype: そのようなファイルやディレクトリはありません 確認してみると/home配下が全て削除されてしまっていました。 rootユーザでのコマンドもパスが通っていないようでだいぶ使えないコマンドがあります。 色々試すも復旧にいたっていません。 お分かりなる方、復旧方法を教えてください。 よろしくお願いします。