[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[pbsd-mg2] crunchgen and setuid



crunchgen のソースを見たついでに、改造してみました。

改造点は、プログラムに root で setuid しておいて、
それぞれの main (_crunched_xx_stub ) を実行する前に、
seteuid() や setegid() を呼ぶようにするものです。

link された一つのプログラムは、別々に setuid できないので、
one floppie system なんかを作るときに、困っていました。
これで setuid したプログラムも crunch することができます。

ただし、普通のプログラムは、real-user-id に seteuid して実行するので、
普通の unix の仕様と違います。

# 普通の unix なら、普通のプログラムは、seteuid されていたら、そのまま
# 動きますが、このシステムだと、real-user-id に変わってしまう。

-----------------
使い方はこんな感じ

xxx.conf で、

option setuid
progs -g kmem ps dmesg netstat
progs -u root rcp ping 

と書くと、

ps dmesg netstat を動かす前に、euid を real-uid にして、
egid を kmem にします。

rcp ping ... を動かす前に、euid を root にして、
egid を real-gid にします。

他のプログラムは、euid,egid を read-uid read-gid にします。

-------------

P.S.

別件で、FreeBSD ベースの one floppy system を作っていて、
こんなのが欲しかったんで 作ってみました。

unix の仕様をクリアできないのが イマイチで気に入らないんですが、
pocketBSD(mg2) でもし役に立ちそうなら、NetBSD 版も作ってみます。


FreeBSD-2.2.7 の usr.bin/crunch の patch を添付しておきます。
----------------------
begin 664 crunch.diff.gz
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
.\[Y!-/\&K?MX5-T5``"9
`
end
size 1589