pyceo-broken/bin/ceo

32 lines
849 B
Plaintext
Raw Normal View History

2007-01-27 18:41:51 -05:00
#!/usr/bin/python2.4 --
"""CEO SUID Python Wrapper Script"""
2007-01-27 18:41:51 -05:00
import os, sys
safe_environment = ['LOGNAME', 'USERNAME', 'USER', 'HOME', 'TERM', 'LANG'
2007-02-04 00:46:05 -05:00
'LC_ALL', 'LC_COLLATE', 'LC_CTYPE', 'LC_MESSAGES', 'LC_MONETARY',
'LC_NUMERIC', 'LC_TIME', 'UID', 'GID', 'SSH_CONNECTION', 'SSH_AUTH_SOCK',
'SSH_CLIENT']
2007-02-04 00:46:05 -05:00
2007-01-27 18:41:51 -05:00
for key in os.environ.keys():
if key not in safe_environment:
2007-01-27 18:41:51 -05:00
del os.environ[key]
2007-05-23 17:04:18 -04:00
os.environ['LESSSECURE'] = '1'
2007-02-04 00:46:05 -05:00
os.environ['PATH'] = '/usr/sbin:/usr/bin:/sbin:/bin'
for pathent in sys.path[:]:
2007-09-23 22:32:56 -04:00
if not pathent.find('/usr') == 0 and not pathent.find('/var') == 0:
2007-02-04 00:46:05 -05:00
sys.path.remove(pathent)
2007-01-27 18:41:51 -05:00
2007-11-28 03:41:44 -05:00
euid = os.getuid()
egid = os.getgid()
2007-02-04 00:46:05 -05:00
try:
os.setreuid(euid, euid)
os.setregid(egid, egid)
except OSError, e:
print str(e)
sys.exit(1)
2007-01-27 18:41:51 -05:00
2007-09-23 22:32:56 -04:00
import csc.apps.urwid.main
csc.apps.urwid.main.start(euid, egid)