OpenLDAPに登録されているアカウントのID、ハッシュ化されたパスワードをテキストCSVファイルに抽出したい、そんなときに作ったスクリプトです。
方針としては、まずOpenLDAPからLDIF形式でアカウント情報を吐き出し、 そのファイルをAWKを使ってCSV形式に成形します。
本体スクリプトの"ldap2csv.sh"
-----------------
"ldap2csv.sh"
-----------------
#!/bin/sh # # Dump LDAP database /usr/sbin/slapcat -l /root/ldap2csv/temp.ldif sleep 3 # Convert ldif format to csv /bin/awk -F ': ' -f /root/ldap2csv/ldif2csv.awk < /root/ldap2csv/temp.ldif > /root/ldap2csv/data.csv
-----------------
そして本体スクリプトの中にあるLDIFからCSV形式へ成形するスクリプト"ldif2csv.awk"。
LDIF形式にDumpした際、ハッシュ化されたパスワードが2行になってしまっているため、それを吸収する必要があった。2行になる場合は改行後に半角スペースが来るため、それを利用した。 また、不要な半角スペースを削除sub(/^[ ]+/, "", str)する。
-----------------
"ldif2csv.awk"
-----------------
# Create CSV from LDIF file # BEGIN { name = "" password = "" bit = 0 str = "" printf(" name,password\n"); } /^userpassword:/ { password=$2 bit=1 } /^ / { str=$1 sub(/^[ ]+/, "", str) if(bit==1) password = password "" str } /^cn: / { name=$2 bit=0 } /^dn/ { if(name != "" && password != "") printf("%s,%s\n",name,password) name = "" password = "" } # Capture last dn END { if(name != "" && password != "") printf("%s,%s\n",name,password) }
-----------------
IT/インフラエンジニアの地位とスキル向上のために

【年収UPの体験談】あなたの IT/インフラエンジニアとしての価値
IT 技術の進化はとどまることを知りません。矢継ぎ早に新たな技術が出てきたり、数年前の技術が時代遅れになったりと、IT エンジニアは勉強し続ける運命のようです。 それをどう思うかはあなた次第。 ビジネスの基本は『付加価値を与える...

【パケットキャプチャ】はNWエンジニアの価値を大きく高める
nesuke の考える NW エンジニアの2つの道 ネットワークエンジニアには 2 つの道があります。 1 つはネットワーク構築一筋で、L4 までをひたすらきっちりと構築していく道。 もう 1 つはネットワークを軸として深堀し...

あなたが成長の日々を歩めますように。
コメント