[Checkins] SVN: zc.zopeorgkeyupload/branches/dev/s Added a script
to move uploaded keys into home
Jim Fulton
jim at zope.com
Fri May 2 09:18:54 EDT 2008
Log message for revision 86089:
Added a script to move uploaded keys into home
directories.
Changed:
U zc.zopeorgkeyupload/branches/dev/setup.py
A zc.zopeorgkeyupload/branches/dev/src/zc/zopeorgkeyupload/mvkey.py
-=-
Modified: zc.zopeorgkeyupload/branches/dev/setup.py
===================================================================
--- zc.zopeorgkeyupload/branches/dev/setup.py 2008-05-02 13:18:51 UTC (rev 86088)
+++ zc.zopeorgkeyupload/branches/dev/setup.py 2008-05-02 13:18:53 UTC (rev 86089)
@@ -19,6 +19,9 @@
entry_points = """
[zope.publisher.publication_factory]
default = zc.zopeorgkeyupload:Publication
+
+[console_scripts]
+mvkey = zc.zopeorgkeyupload.mvkey:main
"""
setup(
Added: zc.zopeorgkeyupload/branches/dev/src/zc/zopeorgkeyupload/mvkey.py
===================================================================
--- zc.zopeorgkeyupload/branches/dev/src/zc/zopeorgkeyupload/mvkey.py (rev 0)
+++ zc.zopeorgkeyupload/branches/dev/src/zc/zopeorgkeyupload/mvkey.py 2008-05-02 13:18:53 UTC (rev 86089)
@@ -0,0 +1,58 @@
+import os
+import pwd
+import re
+import sys
+
+iskey = re.compile('-[12]$').search
+
+
+valid_groups = 'zopesvn', 'cvsusers'
+
+def main(args=None):
+ if args is None:
+ args = sys.argv[1:]
+
+ try:
+ [keydir, users] = args
+ except:
+ print 'Usage: %s key-drop-dir user-list-file' % sys.argv[0]
+ sys.exit(1)
+
+ users = set(open(users).read().strip().split())
+
+ for name in os.listdir(keydir):
+ if iskey(name):
+ keypath = os.path.join(keydir, name)
+ login, type_ = name.rsplit('-', 1)
+ try:
+ uid, gid, c, home = pwd.getpwnam(login)[2:6]
+ except KeyError:
+ print 'Invalid login', login
+ os.remove(keypath)
+ continue
+
+ if uid < 100 or gid < 100:
+ print 'Hack? System account', login
+ os.remove(keypath)
+ continue
+
+ if login not in users:
+ print 'Hack? Not in a valid user', login
+ os.remove(keypath)
+ continue
+
+ sshdir = os.path.join(home, '.ssh')
+ if not os.path.exists(sshdir):
+ os.mkdir(sshdir)
+ os.chown(sshdir, uid, gid)
+ os.chmod(sshdir, 0755)
+
+ if type_ == '1':
+ dest = 'authorized_keys'
+ else:
+ dest = 'authorized_keys2'
+
+ dest = os.path.join(sshdir, dest)
+ os.rename(keypath, dest)
+ os.chown(dest, uid, gid)
+ os.chmod(dest, 0755)
Property changes on: zc.zopeorgkeyupload/branches/dev/src/zc/zopeorgkeyupload/mvkey.py
___________________________________________________________________
Name: svn:keywords
+ Id
Name: svn:eol-style
+ native
More information about the Checkins
mailing list