openldapでのホワイトページの利用とThunderbird/firefox

■読み込まれているSchemaの確認。

$ sudo ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config -W "schema"
Enter LDAP Password:
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: cn=schema,cn=config

dn: cn={0}core,cn=schema,cn=config

dn: cn={1}cosine,cn=schema,cn=config

dn: cn={2}nis,cn=schema,cn=config

dn: cn={3}inetorgperson,cn=schema,cn=config

■「inetorgperson」を検索。。。と言っても長いので、編集。
 以下項目が「MAY」なので、欲しい項目を使って作成する。

$ sudo ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b "cn={3}inetorgperson,cn=schema,cn=config" -W -s base 2>/dev/null | \
  grep -A 5 '( audio' | tr -d '\n' | \
  sed s/" $ "/","/g | sed s/" \|(\|)"//g | \
  sed s/","/"\n"/g | column -c 80 2>/dev/null
audio                   homePostalAddress       photo
businessCategory        initials                roomNumber
carLicense              jpegPhoto               secretary
departmentNumber        labeledURI              uid
displayName             mail                    userCertificate
employeeNumber          manager                 x500uniqueIdentifier
employeeType            mobile                  preferredLanguage
givenName               o                       userSMIMECertificate
homePhone               pager

■上記を参考に「whitepage.ldif」を作成
 「-n」でテスト後、追加する。

$ cat whitepage.ldif
dn: cn=ldapuser,ou=People,dc=openldap,dc=local
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
cn: ldapuser
sn: user
mail: ldapuser@openldap.local
displayName: ldapuser
uid: ldapuser

$ ldapadd -n -x -D "cn=admin,dc=openldap,dc=local" -W -f whitepage.ldif
!adding new entry "cn=ldapuser,ou=People,dc=openldap,dc=local"

$ ldapadd -x -D "cn=admin,dc=openldap,dc=local" -W -f whitepage.ldif

$ ldapsearch -x -LLL -b "ou=People,dc=openldap,dc=local" "cn=ldapuser"
dn: cn=ldapuser,ou=People,dc=openldap,dc=local
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
cn: ldapuser
sn: user
mail: ldapuser@openldap.local
displayName: ldapuser
uid: ldapuser

■64bit Linuxの最新バージョンのThunderbirdを取得する。
 バージョンが変わってもイケるはず。
 「echo」までで確認してから「wget」に渡しましょう。

$ URL="http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/latest/linux-x86_64/ja/"; \
  w3m -dump_source "$URL" | \
  sed s/">"/"&\n"/g | grep href=\"thunder | awk -F\" '{print $2}' | \
  echo "${URL}`xargs`" | \
  xargs wget;unset URL

$ tar jxvf thunderbird-17.0.5.tar.bz2
$ cd thunderbird/ && ./thunderbird

■オフラインで複製ができれば、検索できる。

■おまけ。
 「grep」に気をつければ、同じようにfirefoxも使える。

$ URL="http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/latest/linux-x86_64/ja/"; \
  w3m -dump_source "$URL" | \
  sed s/">"/"&\n"/g | grep href=\"firefox | awk -F\" '{print $2}' | \
  echo "${URL}`xargs`" | \
  xargs wget;unset URL
$ tar jxvf firefox-20.0.1.tar.bz2 ;cd firefox && ./firefox &

■32bit版が欲しい?

$ URL="http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/latest/linux-i686/ja/"; \
  w3m -dump_source "$URL" | \
  sed s/">"/"&\n"/g | grep href=\"thunder | awk -F\" '{print $2}' | \
  echo "${URL}`xargs`" | \
  xargs wget;unset URL

$ URL="http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/latest/linux-i686/ja/"; \
  w3m -dump_source "$URL" | \
  sed s/">"/"&\n"/g | grep href=\"firefox | awk -F\" '{print $2}' | \
  echo "${URL}`xargs`" | \
  xargs wget;unset URL

■不足しているライブラリがあれば、「apt-file」や「apt-cache」で検索して導入する。

$ ldd firefox/firefox
        linux-gate.so.1 =>  (0xb77b7000)
        libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xb7796000)
        libdl.so.2 => /lib/i386-linux-gnu/i686/cmov/libdl.so.2 (0xb7792000)
        libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb76a5000)
        libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xb767f000)
        libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb7662000)
        libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xb74ff000)
        /lib/ld-linux.so.2 (0xb77b8000)
$ ldd thunderbird/thunderbird
        linux-gate.so.1 =>  (0xb7797000)
        libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xb7775000)
        libdl.so.2 => /lib/i386-linux-gnu/i686/cmov/libdl.so.2 (0xb7771000)
        libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xb774a000)
        libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb765e000)
        libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb7641000)
        libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xb74de000)
        /lib/ld-linux.so.2 (0xb7798000)