クーロンから呼び出されて起動され、以下のことをするシェルスクリプトを知りたいです。
1.OSのログインユーザーチェンジ
2.同じサーバー内に配置してあるPerlファイルを起動する
Perlファイル内で、インターネット経由で情報取得しているのですが、指定したユーザーでないと情報が取得できていないため、ユーザーチェンジ処理を入れ込みたいです。
またCシェル、Bシェルどちらでもいいのでしょうか?
シェルなど詳しくないため、ご教授願います。
この場合、ユーザをチェンジするのではなく、
起動させたいユーザに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/
コメント(1件)