I have a python program that runs as root one if its functions at the click of a button is to open a webpage. It kept opening the webpage in firefox as root so I try to use setuid with no avail. Here's what I've tried to get to open the link as a normal user:
from PyQt4 import QtGui, QtCore
import pwd
import os
import webbrowser
def username():
euid = os.geteuid()
print euid
if 'PKEXEC_UID' in os.environ:
user = pwd.getpwuid(int(os.environ["PKEXEC_UID"])).pw_name
print user
return user
elif euid == 0 and 'PKEXEC_UID' not in os.environ:
user = os.environ["SUDO_USER"]
print user
return user
def openLinks():
uidChange = pwd.getpwnam(username()).pw_uid
pidx = os.fork()
if pidx == 0:
try:
os.setuid(uidChange)
QtGui.QDesktopServices.openUrl(QtCore.QUrl("http://stackoverflow.com"))
#webbrowser.open("http://stackoverflow.com")
finally:
os._exit(0)
os.waitpid(pidx, 0)
openLinks()
uidChangeis?