[debian-edu-commits] debian-edu/upstream/ 67/71: Only fix RC bug in first upload.
Petter Reinholdtsen
pere at moszumanska.debian.org
Mon Jun 9 18:25:41 UTC 2014
This is an automated email from the git hooks/post-receive script.
pere pushed a commit to branch master
in repository libpam-mklocaluser.
commit 0bb9a89a8f2a0685343e799228d783c01c07453d
Author: Petter Reinholdtsen <pere at hungry.com>
Date: Sat May 4 11:36:25 2013 +0000
Only fix RC bug in first upload.
---
debian/changelog | 16 +++-------------
debian/pam-python.py | 43 +++++++++++++++----------------------------
2 files changed, 18 insertions(+), 41 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index 781ff8b..3fbdc9c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,16 +1,6 @@
-libpam-mklocaluser (0.8) UNRELEASED; urgency=low
-
- * Make PAM module more robust:
- * Add to /etc/passwd and /etc/shadow using python code instead of
- calling "echo 'something' >> /etc/file" in a subshell.
- * Do not try to syslog an exception, as a string is needed in newer
- python versions.
- * Do not call chown -R, implement it in python instead.
- * Correct test pam_handler function arguments and make it output
- more info during testing.
- * Make sure syslog message make it clear that both passwd and shadow
- is updated by the module.
- * Rewrite runcmd() to work with Python om Wheezy (Closes: #706753).
+libpam-mklocaluser (0.8) unstable; urgency=low
+
+ * Rewrite runcmd() to work with Python on Wheezy (Closes: #706753).
-- Petter Reinholdtsen <pere at debian.org> Sat, 04 May 2013 08:25:53 +0200
diff --git a/debian/pam-python.py b/debian/pam-python.py
index 0a79c1c..bd53708 100755
--- a/debian/pam-python.py
+++ b/debian/pam-python.py
@@ -15,19 +15,6 @@ import math
import time
import syslog
-def append_line(filename, line):
- f = open(filename, 'a')
- f.write(line)
- f.close()
-
-def chown_recursive(path, uid, gid):
- os.chown(path, uid, gid)
- for root, dirs, files in os.walk(path):
- for dirname in dirs:
- os.chown(os.path.join(root, dirname), uid, gid)
- for filename in files:
- os.chown(os.path.join(root, filename), uid, gid)
-
def runcmd(pamh, cmd):
proc = subprocess.Popen(cmd, shell=True, \
stdout=subprocess.PIPE, \
@@ -93,21 +80,21 @@ def check_and_create_localuser(pamh, user):
syslog.syslog("Unknown primary group with gid %d" % gid)
groupname = "[unknown]"
- syslog.syslog("Creating local passwd/shadow entry uid=%d(%s) gid=%d(%s) gecos='%s' home=%s" % (uid, user, gid, groupname, gecos, newhomedir))
+ syslog.syslog("Creating local passwd entry uid=%d(%s) gid=%d(%s) gecos='%s' home=%s" % (uid, user, gid, groupname, gecos, newhomedir))
try:
# Add user entry with overridden home directory in /etc/passwd.
# Can not use adduser, as it refuses to add a user if it already
# is visible via NSS.
- append_line('/etc/passwd', \
- '%s:x:%d:%d:%s:%s:%s' % \
- (user, uid, gid, gecos, newhomedir, shell))
+ cmd = "/bin/echo '%s:x:%d:%d:%s:%s:%s' >> /etc/passwd" \
+ % (user, uid, gid, gecos, newhomedir, shell)
+ runcmd(pamh, cmd)
# Add shadow entry too.
- # FIXME Should only add it if it is missing.
- append_line('/etc/shadow', \
- '%s:x:%d:%d:%d:%d:::' \
- % (user, pwlastchange, pwminage, pwmaxage, pwwarn))
+ # XXX Should only add it if it is missing
+ cmd = "/bin/echo '%s:x:%d:%d:%d:%d:::' >> /etc/shadow" \
+ % (user, pwlastchange, pwminage, pwmaxage, pwwarn)
+ runcmd(pamh, cmd)
syslog.syslog("Creating local home directory for user '%s'" % user)
# Copy content of /etc/skel
@@ -115,14 +102,15 @@ def check_and_create_localuser(pamh, user):
# Change perm of new home dir
os.chmod(newhomedir, dirmode)
- chown_recursive(newhomedir, uid, gid)
+ # os.chown(newhomedir, uid, gid) - not recursive
+ runcmd(pamh, "/bin/chown -R %d:%d '%s'" % (uid, gid, newhomedir))
# Flush nscd cache to get rid of original user entry
if os.access("/usr/sbin/nscd", os.X_OK):
runcmd(pamh, "/usr/sbin/nscd -i passwd")
# Hook for adjusting the freshly created home directory
- # FIXME Should be rewritten in python, I guess
+ # XXX Should be rewritten in python, I guess
runcmd(pamh, "if [ -d /etc/mklocaluser.d ]; then ORIGHOMEDIR='%s' USER='%s' /bin/run-parts /etc/mklocaluser.d ; fi" % (homedir, user))
# Let the user know what is going on
@@ -134,7 +122,7 @@ def check_and_create_localuser(pamh, user):
# and need to be restarted.
return pamh.PAM_TRY_AGAIN
except Exception, e:
- syslog.syslog("Failure while creating local user: %s " % (e))
+ syslog.syslog(e)
pass
return pamh.PAM_SUCCESS
@@ -190,10 +178,9 @@ if __name__ == '__main__':
PAM_SYSTEM_ERR = 3
PAM_TRY_AGAIN = 4
PAM_TEXT_INFO = 5
- def Message(self, tag, str):
- return str
- def conversation(self, msg):
- print "PAM conversation: " + msg
+ def Message(tag, str):
+ return
+ def conversation(msg):
return
pamh = pam_handler()
user = sys.argv[1]
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-edu/upstream/libpam-mklocaluser.git
More information about the debian-edu-commits
mailing list