Changeset 3276 for pykota/trunk/pykota/tool.py
- Timestamp:
- 01/08/08 00:03:01 (16 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
pykota/trunk/pykota/tool.py
r3275 r3276 132 132 self.logger = logger.openLogger("stderr") 133 133 134 # did we drop priviledges ?135 self.privdropped = 0136 137 134 # locale stuff 138 135 try : … … 167 164 # pykota specific stuff 168 165 self.documentation = doc 166 167 # Extract the effective username 168 uid = os.geteuid() 169 try : 170 self.effectiveUserName = pwd.getpwuid(uid)[0] 171 except (KeyError, IndexError), msg : 172 self.printInfo(_("Strange problem with uid(%s) : %s") % (uid, msg), "warn") 173 self.effectiveUserName = os.getlogin() 169 174 170 175 def deferredInit(self) : … … 190 195 self.logger = logger.openLogger(self.config.getLoggingBackend()) 191 196 192 # now drop priviledge if possible193 self.dropPriv()194 195 197 # We NEED this here, even when not in an accounting filter/backend 196 198 self.softwareJobSize = 0 … … 208 210 arguments = " ".join(['"%s"' % arg for arg in sys.argv]) 209 211 self.logdebug("Command line arguments : %s" % arguments) 210 211 def dropPriv(self) :212 """Drops priviledges."""213 uid = os.geteuid()214 try :215 self.originalUserName = pwd.getpwuid(uid)[0]216 except (KeyError, IndexError), msg :217 self.printInfo(_("Strange problem with uid(%s) : %s") % (uid, msg), "warn")218 self.originalUserName = None219 else :220 if uid :221 self.logdebug(_("Running as user '%s'.") % self.originalUserName)222 else :223 if self.pykotauser is None :224 self.logdebug(_("No user named 'pykota'. Not dropping priviledges."))225 else :226 try :227 os.setegid(self.pykotauser[3])228 os.seteuid(self.pykotauser[2])229 except OSError, msg :230 self.printInfo(_("Impossible to drop priviledges : %s") % msg, "warn")231 else :232 self.logdebug(_("Priviledges dropped. Now running as user 'pykota'."))233 self.privdropped = 1234 235 def regainPriv(self) :236 """Drops priviledges."""237 if self.privdropped :238 try :239 os.seteuid(0)240 os.setegid(0)241 except OSError, msg :242 self.printInfo(_("Impossible to regain priviledges : %s") % msg, "warn")243 else :244 self.logdebug(_("Regained priviledges. Now running as root."))245 self.privdropped = 0246 212 247 213 def UTF8ToUserCharset(self, text) :