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

A 回答 (3件)

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ユーザのホームディレクトリは[/]です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/10/02 19:27

No.2 の回答に、ちょっと補足です。



root のホームディレクトリは、「/」とは限りません。
ホームディレクトリが「/root」なんていう Unix もあります。

当然、その Unix では /root の下に .cshrc や .profile 等を設定します。
/ には、そのようなファイルは何もありません。

以上、ご参考まで。
    • good
    • 0
この回答へのお礼

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

ありがとうございました。

お礼日時:2001/10/02 19:29

Solaris8 は使ってないので詳しくはわかりませんが、root にもホームディレクトリがあるので、そこに .cshrc を置いて path の設定をすれば良いはずです。


root のホームディレクトリは、root で cd; pwd とやるか、/etc/passwd の root のエントリを見れば分かります。

それとも…「.cshrc が見つからない」ということは、もしかして root の時は csh でなく他のシェル(sh とか)が走っているのではありませんか?
例えば、sh なら .cshrc でなく .profile、bash なら .bash_profile 等のファイルに path を設定する必要があります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/10/02 19:20

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qroot権限の実行コマンドを通常ユーザーで実行

root権限に限らないのですが、他のユーザーの権限でしか実行できないコマンドを自分で実行する方法が知りたいのです。
と言っても、rootや他ユーザーのパスワードを知っているという前提です。

例えば、通常ユーザーで作業をしているときに、root権限で行う必要のあるコマンドを実行したいとします。
今は、suでログインしてから実行していますが、shellスクリプトで実行したいと思っています。

どういったshellスクリプトになりますでしょうか?

Aベストアンサー

> 今回やろうと思ってるのは、suでログインしてから、いくつかの操作を行いたいので

であれば、そのいくつかの操作をまとめてシェルスクリプトにして、
それを su の -c に渡せば良いですね。

例えば、rally というユーザで、シェルスクリプト名が do_rally.sh とします。
スクリプトに実行権限がついていなければ

% su - rally -c "sh do_rally.sh"

という感じ。実行権限がついていれば

% su - rally -c do_rally.sh

で良いです。

ただ、最低一回はパスワードの入力があるので、su を使っている限りは
それからは逃れられません。

# ちょっと遅くなったので、もう sudo を使っているかな?

QBシェルのawkコマンドについて

Bシェルのawkコマンドについてですが、例えばプロンプトから
% ls -l hoge.txt | awk '{print $5}'

と入力すると、hoge.txtのファイルサイズが出力されますが、同様のことをBシェルの中で行おうと思っています。

下記のように、配列arrayにはスペース区切りで3つのデータが入っており、N番目のデータを取得したいという場合に、Nに変数を使用して取得する方法がわかりません。

#!/bin/sh

array="AA BB CC"
num=3 # CCを取得したい
echo $array | awk '{print $num}'

上記で実行すると、"AA BB CC"のようにすべて出力されてしまいます。awkで出力する箇所を${数値}で指定すればうまくいくのですが、ランダムで決めた数値(1~3)をnumに入れて取得したい場合、このようなことは可能でしょうか。

もし不可能な場合でも、awk以外に何かコマンドがあればご教授願います。なお、作成するのはBシェルになります。

Aベストアンサー

' ' で囲まれた中では、$によるシェル変数置換は効きません。" " で囲むとシェル変数置換が行われます。ただ、
echo $array | awk "{print $num}"
と書くと、$num が 3 のため、
echo $array | awk "{print 3}"
となり、3が表示されるだけです。

echo $array | awk "{print \$$num}"
echo $array | awk '{print $'$num'}'
のどちらか好みのほうを使ってください。私の好みは後者です。

他には、cut コマンドも使えるかと思います。詳しくは、man cut を。

Qsolarisのコマンドリファレンス

こんにちは。
日経Linuxのコマンドリファレンスのサイトを愛用しているのですが、
似たようなsolarisのコマンドリファレンスのサイトってありますでしょうか?
もしくは、solarisの初心者用の解説サイトなど・・・。
シェルスクリプトの記述の仕方とか・・・。
Linuxは検索するとたくさん出てくるのにSolarisってあまり無いような。
検索の仕方が悪いのかもしれません。
もしくは、書籍でお勧めの物があれば教えて下さい。
宜しくお願いいたします。

Aベストアンサー

> solarisのコマンドリファレンスのサイトってありますでしょうか?

Solaris には Answer Book という形でオンラインマニュアルが付いてきますが、
それをまるごと Web で参照できます(→参考URL)。「言語」を選択すれば、
(全てでは無いですが)日本語でマニュアルを読むことができます。

> シェルスクリプトの記述の仕方とか・・・。

なかなか良い本って無い(私が、知らないだけかも)んですよね。

私の先生は、起動スクリプト群( /etc/rc*.d 配下のスクリプトたち)でした。
お手本の解読をマニュアル首っ引きでするのが、上達の近道だと思います。

参考URL:http://docs.sun.com/

QSolarisのコマンド集

こんにちわ。質問させてください。

Solarisのコマンド集のWebページって存在していないのでしょうか?
"コマンド"とその"コマンドについての説明"みたいなページです。
最悪、コマンドさえ分かれば、[man]コマンドで調査することができるのですが。。

UNIXは、OSによってコマンドが違うので、このOSにはあるけど
このOSでは使えないというコマンドがあって非常に困ってます。

ちなみにSolarisのVerは8です。
よろしくお願いします。

Aベストアンサー

manが見れるのなら、ここで十分なはずです。
およそ、Solarisに関する情報は、ここでほとんど手に入ります。
コマンドのリファレンスなんかもありますよ。
日本語で無い場合は、英語の方を探しましょう。

参考URL:http://docs.sun.com/?l=ja

QSolaris5.6 bannerコマンドで文字列を流れるように表示するには?

Solaris5.6上の Cシェルプログラムで、
bannerコマンドと whileと、clearコマンド使用して
文字が流れるようにしたいのですが、いまいち上手く
いきません。
何か良い方法があれば教えて下さい。

Aベストアンサー

clearでなく、CRコードを使ってみた例です。1文字ずつ左から右へ流れていきます。

---------------
#!/bin/csh

set N=20
set STR=$1

while ( $N > 0 )
 printf "$STR\015"
 @ N= $N - 1
 set STR=" $STR"
 sleep 1
end
---------------

ただし「sleep 1」だと動きが遅いため、流れているように見せるためには、msec単位でwaitできるモジュールをC等で作るか、while文でnopループを作る必要がありそうです。

sleepの代わりのnopループ例:
---------------
 set foo=100
 while ( $foo > 0 )
  @ foo= $foo - 1
 end
---------------


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

おすすめ情報