以下は Snow Leopard Server の Open Directory で Samba を使って Windows のログオン認証をするときの話. しかし, Samba+LDAP環境に共通するものがあると思う.
特定のユーザだけが, Windows に
使用されているアカウントはコンピュータアカウントです。このサーバーにアクセスするにはグローバルユーザーアカウント又はローカルユーザーアカウントを使用して下さい。
と言われてログオンできない. Mac や, LDAP 経由では正しく認証される.
このメッセージの解釈だが, 最初は, ユーザ名と同一, またはユーザ名$ のようなコンピュータアカウントが重複して存在する, のような意味かと漠然と思っていたが, そうではなくて, このユーザの LDAP のデータに
acctFlags: [W ]
があって(最新のバージョンのSambaではSambaAcctFlagsだそう). W はworkstation=コンピュータアカウント, だということだった. 通常のユーザアカウントには acctFlags は含まれない.
この状況を確認,修正するのは, GUIではたぶんできなくて, 確認にはターミナルで slapcat を使えばいい. このユーザの acctFlags を消去して正常な状態に戻すには, ldapmodify を使えばいい.
つまり
root@ldapserver # cat /tmp/ldapmods dn: uid=問題のユーザの指定 changetype: modify delete: acctFlags root@ldapserver # ldapmodify -x -h localhost -W -D '管理ユーザの指定' -f /tmp/ldapmods Enter LDAP Password:******** modifying entry "問題のユーザの指定"