3
def drop_privileges(uid_name='nobody', gid_name='nogroup'):
4
#https://stackoverflow.com/questions/2699907/dropping-root-permissions-in-python
8
running_uid = pwd.getpwnam(uid_name).pw_uid
9
running_gid = grp.getgrnam(gid_name).gr_gid
11
os.setgid(running_gid)
12
os.setuid(running_uid)
13
old_umask = os.umask(077)
17
uinput_fd= uinput.Device.create_uinput_fd()
18
drop_privileges() #no need to be root beyond this line
20
events = (uinput.KEY_A,)
21
with uinput.Device(events, fd=uinput_fd) as device:
22
device.emit_click(uinput.KEY_A)
24
if __name__ == "__main__":