Ravi Teja <[EMAIL PROTECTED]> typed > > Ivan Voras wrote: >> Ramdas wrote: >> > Well, >> > >> > I need to add users from a web interface for a web server, which >> > runs only Python. I need to add users, set quotas and in future >> > even look at managing ip tables to limit bandwidth. >> > >> > I know os.system(), but this has to be done through a form entry >> > through a web interface. >> > >> > Anyways thanks, do advise if there more pythonic solutions >> >> What you're looking for is actually a pretty complex thing. You >> *could* in theory manage /etc/passwd (and its "shadow" file) - you >> can find crypto primitives like MD5 and DES on the 'net, but note >> that you must run your script under the 'root' account in order to >> write (and even read!) the passwd database. The same goes for using >> os.system and the built-in OS utility. Be aware of security >> implications if you're running your web server under the root >> account. > > How about invoking scripts with SUID root set?
Linux seems to ignore SUID bit on scripts: [EMAIL PROTECTED]:03:23] >> ~/test --> cat uidtest.py #!/usr/bin/python import os print 'uid:', os.getuid() print 'effective uid:', os.geteuid() os.system('whoami') [EMAIL PROTECTED]:03:28] >> ~/test --> ls -l uidtest.py -rwsr-xr-x 1 root root 112 2007-01-02 17:03 uidtest.py [EMAIL PROTECTED]:03:46] >> ~/test --> /home/lunar/test/uidtest.py uid: 1000 effective uid: 1000 lunar Anyway, you should definitely think about security issues. Not all people out there are friendly... -- Freedom is always the freedom of dissenters. (Rosa Luxemburg) -- http://mail.python.org/mailman/listinfo/python-list