Lazy wrote:
2008/5/5 Jille Timmermans <[EMAIL PROTECTED]>:
-----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1

 Hello hackers!

 I was thinking of creating a more secure environment for running
 webscripts (mod_php in my case),
 I want to run php scripts as their owner.

 I tought of the following scheme's:
 http://junk.quis.cx/fViKmLRi/apache-user-scheme-p1.png
 http://junk.quis.cx/bPkxwAbI/apache-user-scheme-p2.png

 And an setting:
 ExecutiveUser %n # This should run php scripts as $script-owner
 ExecutiveUser www-%n # this should run php scripts as www-$scriptowner
 ExecutiveGroup www
 ExecutiveGroup www-%n
 (%n meaning the script-owners username, and eg %u for the script-owners
uid)

 This would (eg) enable me to:
 [EMAIL PROTECTED]:~# id
 uid=1000(quis) gid=1000(users) groups=1000(users),10000(www-quis)
 [EMAIL PROTECTED]:~# id www-quis
 uid=10000(www-quis) gid=10000(www-quis) groups=10000(www-quis)
 [EMAIL PROTECTED]:~# chown quis:www-quis public_html
 [EMAIL PROTECTED]:~# chmod 750 public_html

 So only 'my' apache-runas user can access my scripts.

 How do you think about this idea ?
 It does decrease the performance a bit (Workers should parse the
 request, put it in some shm, Executive should pick it up from the shm
 and really run the php-script (See the links above for the terms Worker
 and Executive)
 But if the option is not specified it is possible to do it 'the old way'.
 Would it be possible to implement this as an MPM, or MOD ?
 (I don't know enough (yet) of apache to say that.)
 If that is possible there is no loss when it is disabled.
take a look at peruser (http://www.telana.com/peruser.php)

It supports ssl, keep-alive, chroot and chuid per vhost

in simple configurations it seems to work out of the box with some quirks
1) graceful segfaults (apache continues to work)
2) on machines with multiple processors it hangs badly on gaceful restarts
3) some minor issues with ssl cache

last week, I think I ironed out 1 & 2 graceful's work flawlessly on a
busy webserwer (2xdc opteron) (around 300 diferent users with many
more vhosts).

Sadly support list for peruser seems to be dead and latest patch is
based on 2.2.3.

I fixed 2 race conditions, added limited support for ssl for
NamevirtualHosts and did some minor patches.

All without answer so i guess peruser isn't in active development anymore.

There is still an memory leak to plug, maybe my patches did some wrong
but for now it's not a big headache.

Peruser now for me is quite usable, i have some ideas to improve it. I
will do it anyway because i need it for my work.

Somebody told me to fork it, but will anyone care ?
I would really like to run it myself,
and I know a few others who would also like it.

I am willing to help you, however I don't know how.
My C skills are not that good, so I can't do it on my own.
I might be able to kill bugs if apache crashes and I can get a backtrace.
I can help you test it on FreeBSD, (FreeBSD jails are quite useful for testing).

I think peruser would be a nice feature for apache, it would be a shame if it got abandoned.

-- Jille

Reply via email to