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

もしくは一般ユーザーがUNIX2のシェルを実行し、その中で
suコマンドを使ってrootであるファイルを実行する、というパターン
でもいいのですが。

宜しくおねがいします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

remsh もしくは rsh のことでしょうか?


セキュリティ的に穴になりやすいですが、
root の .rhosts に、

<許すホスト名> <許すユーザ名>

と書くのはどうでしょうか?

それとも、シェルを実行させるというのは、
特定のシェルスクリプトを実行させるという意味ですか?
それなら、sudo でしょうか。
    • good
    • 0

sudo


というキーワードで検索してみてください
パスワードは聞かれません。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しの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 を使っているかな?

QUNIXシェルの途中でユーザー切り替え

UNIXシェルの途中でユーザーを切り替える方法はありますか。

例)
 ・ユーザAで先頭100行を実行し、残りはユーザBで実行など・・・。

 ※suできれば良いのですが、対話形式のパスワード入力を促されてしまいますよね・・・。

Aベストアンサー

#3です。
>これを一つのシェルにして、都度ログインしている部分、及び、コマンド実行部分を自動化したい・・・、と言うのが趣旨です。
>それで、まとめたシェルについては、rootで実行ではなくて、一般ユーザで行ないたい・・・。
>という流れとなります。ニュアンスは伝わりましたでしょうか。

伝わってますよ。その前提での回答です。回答を良くお読みください。cmdaとcmdbを並べた親コマンドを作ってそれを一般ユーザーで実行します。
ただし、都度ログインということはログイン時の環境変数設定とかも影響するかもしれないので、必要に応じて、cmda, cmdb の先頭で、source ~usera/.profile などを実行する必要があります。

Q一般ユーザーからrootになったあとlinuxconfが立ち上がりません。

LASER5 7.2を使用しています。一般ユーザーでログインし、「su」でrootになってから「linuxconf」とうちこむと次の文が出てきます。
Error message from remadmin :Xlib:connection to ":0.0" refused by server
Error message from remadmin :Xlib:Client is not authorized to connect to Server
Error message from remadmin :
Error message from remadmin :Gtk-WARNING**: cannot open display: :0.0
アクセス権限がないということらしいですが、どこをどういじれば改善できるでしょうか。ちなみに、最初からrootで入るとちゃんとlinuxconfは立ち上がります。

Aベストアンサー

su する前に xhost + を実行し、 su した後に DISPLAY=localhost:0.0 と export DISPLAY としてください。
ログインシェルが csh 系の場合は、setenv DISPLAY localhost:0.0 としてください。

QUNIXシェル内での日付計算

日付計算系の質問はたくさんありましたがこのタイプが
無かったんで質問させていただきます。

やりたいことは題名そのまんまなんですが、具体的に言う
と、UNIX(今使ってるのがHP-UX11.0)上のバッチシェル
で、前日の日付を取得したいのです。できれば中間ファ
イル(一時ファイル)などを生成せずにシェル内で計算を
済ませたいのですが、何か方法はないのでしょうか。

(Ex.)
現在の日付   2002年1月1日
取得したい日付 2001年12月31日

具体的な方法とか書いてあるとさらにうれしいのですが・・・

それではよろしくお願いします。

Aベストアンサー

環境変数 TZ をいじることで実現できるはずです。

お使いの環境は日本標準時(TZ が JST-9)だと想定して話をします。

環境変数 TZ の -9 は、グリニッジ標準時との ずれ を表しているわけですが、
これを一日前にずらしてしまいます。

具体的には、こんな感じ。

% env TZ=JST+15 date


GNU のコマンドが席巻するまでは、割と有名だったやり方です。
もうひとつのやり方として、GNU の date をインストールして No.1 の回答の
ようにする、という手もありますね。

QUNIXシェル内での日付計算

UNIX(今使ってるのがHP-UX11i)上のバッチシェルで、
指定した日数分の前の日付を取得したいのですが、
何か方法はないでしょうか。


(例)
現在の日付: 20060511
指定した日数: 10(MAX値は100程度)

取得する日:20060501

Aベストアンサー

hpの技術情報によると、HP-UXなら参考URLの方法が使えるみたいです。

参考URL:http://www.unixguide.net/hp/faq/5.13.2.shtml


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

おすすめ情報