現在さくらサーバーで共用サーバーを借りています。(スタンダードコース)


クーロンから呼び出されて起動され、以下のことをするシェルスクリプトを知りたいです。

1.OSのログインユーザーチェンジ
2.同じサーバー内に配置してあるPerlファイルを起動する

Perlファイル内で、インターネット経由で情報取得しているのですが、指定したユーザーでないと情報が取得できていないため、ユーザーチェンジ処理を入れ込みたいです。
またCシェル、Bシェルどちらでもいいのでしょうか?

シェルなど詳しくないため、ご教授願います。

回答の条件
  • 1人5回まで
  • 登録:2007/08/20 22:44:27
  • 終了:2007/08/27 22:45:03

回答(2件)

id:aminochang No.2

amichang回答回数20ベストアンサー獲得回数12007/08/21 01:28:02

ポイント35pt

この場合、ユーザをチェンジするのではなく、

起動させたいユーザにperlプログラムの所有権を持たせます。

そして、パーミッションを4755にすればperlプログラムが、

どのユーザから起動しても所有ユーザから起動したことになります。(setuid:スティッキービット)

たとえば、起動させたいユーザhogeでグループがuser、perlファイルがhuga.plであれば、

$chown hoge:user huga.pl

$chmod 4777 huga.pl

これで、パーミッションの設定をした後、

perl huga.pl (huga.plは適宜変更)

をスクリプトに書けば、走ります。

ただ、sakuraにsuidperlというモジュールが入っていない場合は、起動しません。

そのときは起動したいユーザにログインしてから、

cronで上のスクリプトを書けば実行できたはずです。

setuidperl : http://platz.jp/howto/suidperl.html

スティッキービット : http://itpro.nikkeibp.co.jp/article/Keyword/20070518/271475/

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません