summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kolabd/__init__.py16
-rw-r--r--pykolab/logger.py9
-rw-r--r--wallace/__init__.py16
3 files changed, 27 insertions, 14 deletions
diff --git a/kolabd/__init__.py b/kolabd/__init__.py
index 6939326..bf4fc7b 100644
--- a/kolabd/__init__.py
+++ b/kolabd/__init__.py
@@ -92,12 +92,16 @@ class KolabDaemon(object):
exitcode = 0
try:
- (ruid, euid, suid) = os.getresuid()
- (rgid, egid, sgid) = os.getresgid()
+ try:
+ (ruid, euid, suid) = os.getresuid()
+ (rgid, egid, sgid) = os.getresgid()
+ except AttributeError, errmsg:
+ ruid = os.getuid()
+ rgid = os.getgid()
if ruid == 0:
# Means we can setreuid() / setregid() / setgroups()
- if egid == 0:
+ if rgid == 0:
# Get group entry details
try:
(
@@ -115,7 +119,7 @@ class KolabDaemon(object):
sys.exit(1)
# Set real and effective group if not the same as current.
- if not group_gid == egid:
+ if not group_gid == rgid:
log.debug(
_("Switching real and effective group id to %d") % (
group_gid
@@ -125,7 +129,7 @@ class KolabDaemon(object):
os.setregid(group_gid, group_gid)
- if euid == 0:
+ if ruid == 0:
# Means we haven't switched yet.
try:
(
@@ -147,7 +151,7 @@ class KolabDaemon(object):
# Set real and effective user if not the same as current.
- if not user_uid == euid:
+ if not user_uid == ruid:
log.debug(
_("Switching real and effective user id to %d") % (
user_uid
diff --git a/pykolab/logger.py b/pykolab/logger.py
index 94a84fb..878f79f 100644
--- a/pykolab/logger.py
+++ b/pykolab/logger.py
@@ -92,8 +92,13 @@ class Logger(logging.Logger):
fhandle.close()
# Make sure (read: attempt to change) the permissions
- (ruid, euid, suid) = os.getresuid()
- (rgid, egid, sgid) = os.getresgid()
+ try:
+ (ruid, euid, suid) = os.getresuid()
+ (rgid, egid, sgid) = os.getresgid()
+ except AttributeError, errmsg:
+ ruid = os.getuid()
+ rgid = os.getgid()
+
if ruid == 0 or rgid == 0:
try:
os.chown(
diff --git a/wallace/__init__.py b/wallace/__init__.py
index 0d04c5b..45ad211 100644
--- a/wallace/__init__.py
+++ b/wallace/__init__.py
@@ -254,12 +254,16 @@ class WallaceDaemon(object):
exitcode = 0
try:
- (ruid, euid, suid) = os.getresuid()
- (rgid, egid, sgid) = os.getresgid()
+ try:
+ (ruid, euid, suid) = os.getresuid()
+ (rgid, egid, sgid) = os.getresgid()
+ except AttributeError, errmsg:
+ ruid = os.getuid()
+ rgid = os.getgid()
if ruid == 0:
# Means we can setreuid() / setregid() / setgroups()
- if egid == 0:
+ if rgid == 0:
# Get group entry details
try:
(
@@ -277,7 +281,7 @@ class WallaceDaemon(object):
sys.exit(1)
# Set real and effective group if not the same as current.
- if not group_gid == egid:
+ if not group_gid == rgid:
log.debug(
_("Switching real and effective group id to %d") % (
group_gid
@@ -287,7 +291,7 @@ class WallaceDaemon(object):
os.setregid(group_gid, group_gid)
- if euid == 0:
+ if ruid == 0:
# Means we haven't switched yet.
try:
(
@@ -309,7 +313,7 @@ class WallaceDaemon(object):
# Set real and effective user if not the same as current.
- if not user_uid == euid:
+ if not user_uid == ruid:
log.debug(
_("Switching real and effective user id to %d") % (
user_uid