|
@@ -333,17 +333,25 @@ def parse_gid(gid):
|
|
|
def setegid(gid):
|
|
|
"""Set effective group id."""
|
|
|
gid = parse_gid(gid)
|
|
|
- if gid != os.getgid():
|
|
|
+ if gid != os.getegid():
|
|
|
os.setegid(gid)
|
|
|
|
|
|
|
|
|
def seteuid(uid):
|
|
|
"""Set effective user id."""
|
|
|
uid = parse_uid(uid)
|
|
|
- if uid != os.getuid():
|
|
|
+ if uid != os.geteuid():
|
|
|
os.seteuid(uid)
|
|
|
|
|
|
|
|
|
+def setgid(gid):
|
|
|
+ os.setgid(parse_gid(gid))
|
|
|
+
|
|
|
+
|
|
|
+def setuid(uid):
|
|
|
+ os.setuid(parse_uid(uid))
|
|
|
+
|
|
|
+
|
|
|
def set_effective_user(uid=None, gid=None):
|
|
|
"""Change process privileges to new user/group.
|
|
|
|
|
@@ -362,10 +370,10 @@ def set_effective_user(uid=None, gid=None):
|
|
|
# If GID isn't defined, get the primary GID of the user.
|
|
|
if not gid and pwd:
|
|
|
gid = pwd.getpwuid(uid).pw_gid
|
|
|
- setegid(gid)
|
|
|
- seteuid(uid)
|
|
|
+ setgid(gid)
|
|
|
+ setuid(uid)
|
|
|
else:
|
|
|
- gid and setegid(gid)
|
|
|
+ gid and setgid(gid)
|
|
|
|
|
|
|
|
|
class Signals(object):
|