diff --exclude-from=exclude -N -u -r nsapolicycoreutils/scripts/genhomedircon policycoreutils-1.29.1/scripts/genhomedircon --- nsapolicycoreutils/scripts/genhomedircon 2005-12-07 07:28:00.000000000 -0500 +++ policycoreutils-1.29.1/scripts/genhomedircon 2005-12-14 14:12:00.000000000 -0500 @@ -29,11 +29,14 @@ import commands, sys, os, pwd, string, getopt, re from semanage import *; -fd=open("/etc/shells", 'r') -VALID_SHELLS=fd.read().split('\n') -fd.close() -if "/sbin/nologin" in VALID_SHELLS: - VALID_SHELLS.remove("/sbin/nologin") +try: + fd=open("/etc/shells", 'r') + VALID_SHELLS=fd.read().split('\n') + fd.close() + if "/sbin/nologin" in VALID_SHELLS: + VALID_SHELLS.remove("/sbin/nologin") +except: + VALID_SHELLS = ['/bin/sh', '/bin/bash', '/bin/ash', '/bin/bsh', '/bin/ksh', '/usr/bin/ksh', '/usr/bin/pdksh', '/bin/tcsh', '/bin/csh', '/bin/zsh'] def getStartingUID(): starting_uid = sys.maxint @@ -163,21 +166,29 @@ return role def adduser(self, udict, user, seuser, role): + if seuser == "user_u" or user == "__default__": + return + # !!! chooses first role in the list to use in the file context !!! + if role[-2:] == "_r" or role[-2:] == "_u": + role = role[:-2] try: - if seuser == "user_u" or user == "__default__": - return - # !!! chooses first role in the list to use in the file context !!! - if role[-2:] == "_r" or role[-2:] == "_u": - role = role[:-2] home = pwd.getpwnam(user)[5] if home == "/": - return - prefs = {} - prefs["role"] = role - prefs["home"] = home - udict[seuser] = prefs + # Probably install so hard code to /root + if user == "root": + home="/root" + else: + return except KeyError: - sys.stderr.write("The user \"%s\" is not present in the passwd file, skipping...\n" % user) + if user == "root": + home = "/root" + else: + sys.stderr.write("The user \"%s\" is not present in the passwd file, skipping...\n" % user) + return + prefs = {} + prefs["role"] = role + prefs["home"] = home + udict[seuser] = prefs def getUsers(self): udict = {}