diff options
Diffstat (limited to 'zarb-ml/mageia-sysadm/attachments/20101117/f94d7af2/attachment-0001.html')
-rw-r--r-- | zarb-ml/mageia-sysadm/attachments/20101117/f94d7af2/attachment-0001.html | 199 |
1 files changed, 199 insertions, 0 deletions
diff --git a/zarb-ml/mageia-sysadm/attachments/20101117/f94d7af2/attachment-0001.html b/zarb-ml/mageia-sysadm/attachments/20101117/f94d7af2/attachment-0001.html new file mode 100644 index 000000000..a6789f8e2 --- /dev/null +++ b/zarb-ml/mageia-sysadm/attachments/20101117/f94d7af2/attachment-0001.html @@ -0,0 +1,199 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" +"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head><meta http-equiv="content-type" content="text/html; charset=utf-8" /> +<title>[262] - import mandriva script to export ssh keys ( need some cleaning )</title> +</head> +<body> + +<style type="text/css"><!-- +#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; } +#msg dl.meta dt { float: left; width: 6em; font-weight: bold; } +#msg dt:after { content:':';} +#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; } +#msg dl a { font-weight: bold} +#msg dl a:link { color:#fc3; } +#msg dl a:active { color:#ff0; } +#msg dl a:visited { color:#cc6; } +h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; } +#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; } +#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; } +#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; } +#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; } +#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; } +#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; } +#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; } +#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; } +#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; } +#logmsg pre { background: #eee; padding: 1em; } +#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;} +#logmsg dl { margin: 0; } +#logmsg dt { font-weight: bold; } +#logmsg dd { margin: 0; padding: 0 0 0.5em 0; } +#logmsg dd:before { content:'\00bb';} +#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; } +#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; } +#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; } +#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; } +#logmsg table th.Corner { text-align: left; } +#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; } +#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; } +#patch { width: 100%; } +--></style> +<div id="msg"> +<dl class="meta"> +<dt>Revision</dt> <dd>262</dd> +<dt>Author</dt> <dd>misc</dd> +<dt>Date</dt> <dd>2010-11-17 15:17:29 +0100 (Wed, 17 Nov 2010)</dd> +</dl> + +<h3>Log Message</h3> +<pre>- import mandriva script to export ssh keys ( need some cleaning )</pre> + +<h3>Modified Paths</h3> +<ul> +<li><a href="#puppetmodulesrestrictshellmanifestsinitpp">puppet/modules/restrictshell/manifests/init.pp</a></li> +</ul> + +<h3>Added Paths</h3> +<ul> +<li><a href="#puppetmodulesrestrictshelltemplatesldapsshkey2filepy">puppet/modules/restrictshell/templates/ldap-sshkey2file.py</a></li> +</ul> + +</div> +<div id="patch"><pre> +<a id="puppetmodulesrestrictshellmanifestsinitpp">Modified: puppet/modules/restrictshell/manifests/init.pp</a> +=================================================================== +--- puppet/modules/restrictshell/manifests/init.pp 2010-11-17 02:45:43 UTC (rev 261) ++++ puppet/modules/restrictshell/manifests/init.pp 2010-11-17 14:17:29 UTC (rev 262) +@@ -26,4 +26,21 @@ + mode => 755, + content => template("restrictshell/membersh-conf.pl"), + } ++ ++ package { 'python-ldap': ++ ensure => installed, ++ } ++ ++ file { '/usr/local/bin/ldap-sshkey2file.py': ++ ensure => present, ++ owner => root, ++ group => root, ++ mode => 755, ++ content => template("restrictshell/ldap-sshkey2file.py"), ++ requires => Package['python-ldap'] ++ } ++ ++ ++ ++ + } + +<a id="puppetmodulesrestrictshelltemplatesldapsshkey2filepy">Added: puppet/modules/restrictshell/templates/ldap-sshkey2file.py</a> +=================================================================== +--- puppet/modules/restrictshell/templates/ldap-sshkey2file.py (rev 0) ++++ puppet/modules/restrictshell/templates/ldap-sshkey2file.py 2010-11-17 14:17:29 UTC (rev 262) +@@ -0,0 +1,92 @@ ++#!/usr/bin/python ++ ++import sys ++import os ++import random ++ ++try: ++ import ldap ++except ImportError, e: ++ print "Please install python-ldap before running this program" ++ sys.exit(1) ++ ++basedn="dc=mandriva,dc=com" ++peopledn="ou=people,%s" % basedn ++uris=['ldap://kenobi.mandriva.com','ldap://svn.mandriva.com'] ++random.shuffle(uris) ++uri = " ".join(uris) ++timeout=5 ++binddn="uid=sshkeyreader,ou=System Accounts,%s" % basedn ++pwfile="/etc/sshkeyreader.pw" ++# filter out disabled accounts also ++# too bad uidNumber doesn't support >= filters ++filter="(&(objectClass=inetOrgPerson)(objectClass=ldapPublicKey)(objectClass=posixAccount)(sshPublicKey=*)(!(shadowExpire=*)))" ++keypathprefix="/var/lib/config/pubkeys" ++ ++def usage(): ++ print "%s" % sys.argv[0] ++ print ++ print "Will fetch all enabled user accounts under %s" % peopledn ++ print "with ssh keys in them and write each one to" ++ print "%s/<login>/authorized_keys" % keypathprefix ++ print ++ print "This script is intented to be run from cron as root" ++ print ++ ++def get_pw(pwfile): ++ try: ++ f = open(pwfile, 'r') ++ except IOError, e: ++ print "Error while reading password file, aborting" ++ print e ++ sys.exit(1) ++ pw = f.readline().strip() ++ f.close() ++ return pw ++ ++def write_keys(keys, user, uid, gid): ++ try: ++ os.makedirs("%s/%s" % (keypathprefix,user), 0700) ++ except: ++ pass ++ keyfile = "%s/%s/authorized_keys" % (keypathprefix,user) ++ f = open(keyfile, 'w') ++ for key in keys: ++ f.write(key.strip() + "\n") ++ f.close() ++ os.chmod(keyfile, 0600) ++ os.chown(keyfile, uid, gid) ++ os.chmod("%s/%s" % (keypathprefix,user), 0700) ++ os.chown("%s/%s" % (keypathprefix,user), uid, gid) ++ ++if len(sys.argv) != 1: ++ usage() ++ sys.exit(1) ++ ++bindpw = get_pw(pwfile) ++ ++try: ++ ld = ldap.initialize(uri) ++ ld.set_option(ldap.OPT_NETWORK_TIMEOUT, timeout) ++ ld.start_tls_s() ++ ld.bind_s(binddn, bindpw) ++ res = ld.search_s(peopledn, ldap.SCOPE_ONELEVEL, filter, ['uid','sshPublicKey','uidNumber','gidNumber']) ++ try: ++ os.makedirs(keypathprefix, 0701) ++ except: ++ pass ++ for result in res: ++ dn, entry = result ++ # skip possible system users ++ if int(entry['uidNumber'][0]) < 500: ++ continue ++ write_keys(entry['sshPublicKey'], entry['uid'][0], int(entry['uidNumber'][0]), int(entry['gidNumber'][0])) ++ ld.unbind_s() ++except Exception, e: ++ print "Error" ++ raise ++ ++sys.exit(0) ++ ++ ++# vim:ts=4:sw=4:et:ai:si + + +Property changes on: puppet/modules/restrictshell/templates/ldap-sshkey2file.py +___________________________________________________________________ +<a id="svnexecutable">Added: svn:executable</a> + + * + +</pre></div> + +</body> +</html>
\ No newline at end of file |