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

Reply via email to