[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:45822] Re: suid したスクリプトからのscp ssh
柴田(あ)です。
中間報告です。
とりあえず、希望することは達成しました。
が、試したりあるべき状態にするなどを終えて
まとめを報告したいと思います。
<20060201191027.098B.MASAKI@xxxxxxxxxxxx> の、
"[debian-users:45762] Re: suid したスクリプトからのscp ssh" において、
"Wed, 1 Feb 2006 19:38:41 +0900" 発信のメイルで
"Masaki Ikeda <masaki@xxxxxxxxxxxx>"さんは書きました:
> 池田@オレンジです。
>
> > 柴田(あ)です。
>
> > スクリプトが setuid できないのは、承知しており、
> > perl だけはできると見つけて、今回はそのパッケージを
> > いれて使っております。
>
> そうですか。
> 元のメールを良く読んでみたんですが(って今頃かぃ(^^;)perlのスクリプトは
>
> #!/usr/bin/perl
> $ENV{PATH}="";
> system('/usr/bin/scp $FILE admin@$MSA:$DIR/');
> system('/usr/bin/ssh -l hoge REMOTE−SERVER sh /home/hoge/script/STEP3.sh');
>
> これで全てなんでしょうか?
えぇ、これだけです。
転送して、リモートのスクリプトを実行するだけです。
変えているのはファイル名だけです。
> setuidすると、実効UIDは変わりますが、実UIDは変わりません。
> sshは、実効UIDではなく実UIDを見てるのではないでしょうか?
ということがわかりかけて途方にくれていたのでした。
> って事で、
>
> #!/usr/bin/perl
> $<=$>; ←ココ追加
> すると良い・・・カモ
> 実UID($<)を実効UID($>)にセット
すばらしいです。
希望通りの動作になりました。
> ついでに言えば、
> -rwsr-xr-x 1 root staff 553 2006-02-01 11:16 /usr/local/bin/STEP2.general.pl
> というのもおかしい。
> root権限ではなく、hogeユーザの権限で実行したいのであれば、ownerをrootで
> はなくhogeにしとかないと・・・
確かにおかしいですね。
が、うまく動いちゃった(多分 hoge よりも
root 権限のほうが大きい権限だから?)ので、
権限をこれから締め付けていこうと思います。
これからの予定としては、
・斉藤さんのご指摘の「 HostBase 認証でやるパターンは試してない」ので、
試してみたいです。
・土屋さんのご指摘の「 command="リモートで実行するコマンド" ssh-rsa ... 」
はあるべき姿だと思いますので、いまの状態は仮の姿として移したいです。
また、仕組みとして root 権限で実行するスクリプトと
同じなので現在は root 権限で実行するスクリプトの
ラッパーとしてあります。
-r-x------ 1 root staff /usr/local/bin/STEP2.sh
という実行ファイルにして
-rwsr-xr-x 1 root staff /usr/local/bin/STEP2.wrapper
というようにし、
#!/usr/bin/perl
$<=$>;
$ENV{PATH}="";
system('/usr/local/bin/STEP2.sh ');
というスクリプトにしました。
それでもって、 /usr/local/bin/STEP2.sh はというようにしました。
ひとつにまとめたのはメンテナンス性を考えたからです。
一般ユーザから root に suid して sudo -u hoge という
あたりがカナリ怪しいのですが、 6000 回ほどまわしても
問題がでないくらいなので、概ねいい感じです。
#! /bin/sh
FILE=/tmp/honyahonya
REMOTE-SERVER=www.example.jp
DIR=/tmp/queue
/usr/bin/sudo -u hoge /usr/bin/scp $FILE admin@$REMOTE-SERVER:$DIR/
/usr/bin/sudo -u hoge /usr/bin/ssh -l hoge $REMOTE-SERVER sh /home/hoge/script/STEP3.sh
# 実はリモートで動く /home/hoge/script/STEP3.sh は
# ルート権限で動くスクリプトをキックするための中身は
# sudo /usr/local/bin/STEP4.sh な変態スクリプトです (^^;
--
SHIBATA Akira ケーブルテレビはまちづくり
shibata@xxxxxxxxxxxxxx phone : +81-429-74-3611