stdout nach permission drop loggen
Verfasst: Dienstag 14. Oktober 2014, 09:58
Moin,
hab ein kleines Problem und nicht wirklich eine Lösung dafür parat.
Und zwar habe ich eine Logger Class die mir stdout loggt was auch klappt, allerdings
würde ich gerne die permissons droppen nachdem ich das script gestartet habe.
Denke mal dass das Problem ist das ich das script als root ausführe und dann die rechte droppe.
Jemand ne Idee wie ich ihn dazu bringen kann den stdout zu loggen nachdem ich die permissions neu gesetzt habe?
hab ein kleines Problem und nicht wirklich eine Lösung dafür parat.
Und zwar habe ich eine Logger Class die mir stdout loggt was auch klappt, allerdings
würde ich gerne die permissons droppen nachdem ich das script gestartet habe.
Denke mal dass das Problem ist das ich das script als root ausführe und dann die rechte droppe.
Code: Alles auswählen
import sys
import os
class Logger(object):
def __init__(self, filename="Default.log"):
self.terminal = sys.stdout
self.log = open(filename, "a")
def write(self, message):
self.terminal.write(message)
self.log.write(message)
try:
sys.stdout = Logger('/tmp/event.logger')
def drop_permissions(uid_name='updateservice', gid_name='users'):
import pwd
import grp
nonpriv_uid = pwd.getpwnam(uid_name).pw_uid
nonpriv_gid = grp.getgrnam(gid_name).gr_gid
os.setgroups([])
os.setgid(nonpriv_gid)
os.setuid(nonpriv_uid)
del pwd
del grp
start_update()
def start_update():
print 'test'
if __name__ == "__main__":
drop_permissions()