import os import pwd from base import * USER = "nobody" UID = pwd.getpwnam(USER)[2] class Test (TestBase): def __init__ (self): TestBase.__init__ (self) self.name = "ChangeUser: phpcgi" self.request = "GET /change_user1/test.php HTTP/1.0\r\n" self.expected_error = 200 self.expected_content = "I'm %s" % (USER) self.conf = """Directory /change_user1 { Handler phpcgi { ChangeUser On Interpreter %s } } """ % (PHPCGI_PATH) def Prepare (self, www): d = self.Mkdir (www, "change_user1", 0777) f = self.WriteFile (d, "test.php", 0444, '') if os.geteuid() == 0: os.chown (f, UID, os.getgid()) def Precondition (self): # It will only work it the server runs as root if os.geteuid() != 0: return False return os.path.exists (PHPCGI_PATH)