summaryrefslogtreecommitdiffstats
path: root/zarb-ml/mageia-sysadm/attachments/20101117/f94d7af2/attachment-0001.html
diff options
context:
space:
mode:
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.html199
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 =&gt; 755,
+ content =&gt; template(&quot;restrictshell/membersh-conf.pl&quot;),
+ }
++
++ package { 'python-ldap':
++ ensure =&gt; installed,
++ }
++
++ file { '/usr/local/bin/ldap-sshkey2file.py':
++ ensure =&gt; present,
++ owner =&gt; root,
++ group =&gt; root,
++ mode =&gt; 755,
++ content =&gt; template(&quot;restrictshell/ldap-sshkey2file.py&quot;),
++ requires =&gt; 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 &quot;Please install python-ldap before running this program&quot;
++ sys.exit(1)
++
++basedn=&quot;dc=mandriva,dc=com&quot;
++peopledn=&quot;ou=people,%s&quot; % basedn
++uris=['ldap://kenobi.mandriva.com','ldap://svn.mandriva.com']
++random.shuffle(uris)
++uri = &quot; &quot;.join(uris)
++timeout=5
++binddn=&quot;uid=sshkeyreader,ou=System Accounts,%s&quot; % basedn
++pwfile=&quot;/etc/sshkeyreader.pw&quot;
++# filter out disabled accounts also
++# too bad uidNumber doesn't support &gt;= filters
++filter=&quot;(&amp;(objectClass=inetOrgPerson)(objectClass=ldapPublicKey)(objectClass=posixAccount)(sshPublicKey=*)(!(shadowExpire=*)))&quot;
++keypathprefix=&quot;/var/lib/config/pubkeys&quot;
++
++def usage():
++ print &quot;%s&quot; % sys.argv[0]
++ print
++ print &quot;Will fetch all enabled user accounts under %s&quot; % peopledn
++ print &quot;with ssh keys in them and write each one to&quot;
++ print &quot;%s/&lt;login&gt;/authorized_keys&quot; % keypathprefix
++ print
++ print &quot;This script is intented to be run from cron as root&quot;
++ print
++
++def get_pw(pwfile):
++ try:
++ f = open(pwfile, 'r')
++ except IOError, e:
++ print &quot;Error while reading password file, aborting&quot;
++ print e
++ sys.exit(1)
++ pw = f.readline().strip()
++ f.close()
++ return pw
++
++def write_keys(keys, user, uid, gid):
++ try:
++ os.makedirs(&quot;%s/%s&quot; % (keypathprefix,user), 0700)
++ except:
++ pass
++ keyfile = &quot;%s/%s/authorized_keys&quot; % (keypathprefix,user)
++ f = open(keyfile, 'w')
++ for key in keys:
++ f.write(key.strip() + &quot;\n&quot;)
++ f.close()
++ os.chmod(keyfile, 0600)
++ os.chown(keyfile, uid, gid)
++ os.chmod(&quot;%s/%s&quot; % (keypathprefix,user), 0700)
++ os.chown(&quot;%s/%s&quot; % (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]) &lt; 500:
++ continue
++ write_keys(entry['sshPublicKey'], entry['uid'][0], int(entry['uidNumber'][0]), int(entry['gidNumber'][0]))
++ ld.unbind_s()
++except Exception, e:
++ print &quot;Error&quot;
++ 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