From 076d907629005e227320e6d734ab4632f4f11f33 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Sun, 10 Jun 2007 09:18:13 +0000 Subject: New dirty script to convert from getent to LDAP using awk. --- ldap/userimport.awk | 36 ++++++++++++++++++++++++++++++++++++ ldap/userimport.sh | 10 ++++++++++ 2 files changed, 46 insertions(+) create mode 100755 ldap/userimport.awk create mode 100644 ldap/userimport.sh (limited to 'ldap') diff --git a/ldap/userimport.awk b/ldap/userimport.awk new file mode 100755 index 0000000..165ee98 --- /dev/null +++ b/ldap/userimport.awk @@ -0,0 +1,36 @@ +BEGIN { FS=":" } +{ +if ($3 > 99) { + printf("dn: cn=%s,ou=People,ou=Entities,ou=SAM,dc=jones,dc=dk\n", $5); + printf("objectclass: top\n"); + printf("objectclass: account\n"); + printf("objectclass: posixAccount\n"); + printf("objectclass: morrisonaccount\n"); + printf("objectclass: morrisonuser\n"); + printf("objectclass: person\n"); + printf("objectclass: organizationalPerson\n"); + printf("objectclass: inetOrgPerson\n"); + printf("objectclass: evolutionPerson\n"); + printf("objectclass: officePerson\n"); + printf("objectclass: mHybridPerson\n"); + printf("objectclass: morrisonperson\n"); + printf("cn: %s\n", $5); + printf("sn: %s\n", substr($5, match($5, " ") + 1)); + printf("morrisonimallow: Y\n"); +} else { + printf("dn: uid=%s,ou=System,ou=Entities,ou=SAM,dc=jones,dc=dk\n", $1); + printf("objectclass: top\n"); + printf("objectclass: account\n"); + printf("objectclass: posixAccount\n"); + printf("objectclass: \n"); +} +printf("uid: %s\n", $1); +printf("uidNumber: %s\n", $4); +printf("gidNumber: %s\n", $3); +printf("userpasswd: {CRYPT}%s\n", $2); +printf("gecos: %s\n", $5); +printf("homeDirectory: %s\n", $6); +printf("loginShell: %s\n", $7); +printf("\n"); +} +END {} diff --git a/ldap/userimport.sh b/ldap/userimport.sh new file mode 100644 index 0000000..ff8d3cf --- /dev/null +++ b/ldap/userimport.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +# Origin (possibly): http://www.whitemiceconsulting.com/node/101 & http://www.whitemiceconsulting.com/system/files?file=LDAP102.pdf + +# TODO: +# * Handle non-ASCII input +# + ASCIIfy known limited fields (dn, gecos,...) +# + Unicode-wrap the rest: Double first colon, and base64-encode rest of line. + +getent passwd | awk -f userimport.awk -- cgit v1.2.3