--- /usr/lib/python2.5/site-packages/trac/web/standalone.py 2008-11-16 16:58:09 +0000 +++ /root/standalone.py 2009-01-09 21:25:12 +0000 @@ -22,6 +22,8 @@ import pkg_resources import os import sys +import grp +import pwd from SocketServer import ThreadingMixIn from trac import __version__ as VERSION @@ -169,6 +171,12 @@ parser.add_option('--pidfile', action='store', dest='pidfile', help='When daemonizing, file to which to write pid') + parser.add_option('--user', action='store', + dest='user', + help='Drop privileges to user') + parser.add_option('--group', action='store', + dest='group', + help='Drop privileges to group') parser.add_option('--umask', action='store', type='int', dest='umask', metavar='MASK', help='When daemonizing, file mode creation mask ' @@ -244,6 +252,12 @@ daemon.daemonize(pidfile=options.pidfile, progname='tracd', umask=options.umask) + if options.group: + os.setgid(grp.getgrnam(options.group)[2]) + + if options.user: + os.setuid(pwd.getpwnam(options.user)[2]) + if options.autoreload: def modification_callback(file): print>>sys.stderr, 'Detected modification of %s, restarting.' \