Windows Server (Active Directory, AD) との連携を試してみた。
pkgsrc (2012Q2) から Samba (net/samba, samba-3.6.5) をインストール。
$ sudo net ads join -U (ユーザ) ... Failed to join domain: failed to set machine spn: Constraint violation
エラー。
ドメインに参加させようとしているホストと、AD のドメインが一致していないとダメらしい。
AD の DNS への登録権限は持ってないので、/etc/hosts に適当に追加。
今度は
Client not found in Kerberos database
適当に /etc/krb5.conf に AD の realm の設定をして kinit の実行したら net ads join も成功した。こんな手順なのか?ネットで調べたと若干違うような気がするけど、再現できないからよくわからない。AD に登録されたホストを消す方法も不明(ADへのログオン権限ないので)。
winbindd を起動して、まずは動作確認。
$ wbinfo -t checking the trust secret for domain (ADドメイン) via RPC calls succeeded $ wbinfo -a (ADドメインユーザ) Enter (ADドメインユーザ)'s password: plaintext password authentication succeeded Enter (ADドメインユーザ)'s password: challenge/response password authentication failed error code was NT_STATUS_WRONG_PASSWORD (0xc000006a) error message was: Wrong Password Could not authenticate user (ADドメインユーザ) with challenge/response
AD への接続は O.K.、plain text のパスワード認証は O.K.、challenge の認証がこけている。調べたけれど類似の事例が見つからず。とりあえず先に進んでみる。
/etc/nsswitch.conf に winbind を追加して接続…失敗。
$ id (ADドメインユーザ) id: (ADドメインユーザ): No such user
winbind のログを見ても、どうなっているのかさっぱり不明。ユーザを検索しているように見えない。
ktrace しろとのお告げに従って、
$ ktrace id (ADドメインユーザ) ... $ kdump ... 804 1 id CALL open(0xbfbfe038,0,0) 804 1 id NAMI "/usr/lib/nss_winbind.so.0" 804 1 id RET open -1 errno 2 No such file or directory ...
あれれ、失敗しているよ。
$ ls -l /usr/lib/nss_winbind.so.0 lrwxr-xr-x 1 root wheel 29 Oct 2 11:08 /usr/lib/nss_winbind.so.0 -> /usr/pkg/lib/nss_winbind.so.0 $ file /usr/lib/nss_winbind.so.0 /usr/lib/nss_winbind.so.0: broken symbolic link to `/usr/pkg/lib/nss_winbind.so.0'
???
$ ls -l /usr/pkg/lib/nss_* -rwxr-xr-x 1 root wheel 39022 Oct 2 11:07 /usr/pkg/lib/nss_winbind.so -rwxr-xr-x 1 root wheel 1437639 Oct 2 11:07 /usr/pkg/lib/nss_wins.so
おや、まあ。
$ cd /usr/pkg/lib $ sudo ln -s nss_winbind.so nss_winbind.so.0 $ getent passwd (ADドメインユーザ) (ADドメインユーザ):*:10000:10006::/home/(ADドメイン)/(ユーザ):/bin/false
まずは一段階クリア。
$ id (ADドメインユーザ) ...反応なし
問合せに時間がかかっているのか、ハングアップしているのかどっちかわからん。
放置していたら、成功してた。でも時間を計ろうと time id を実行したら 2 分ぐらいして No such user を返してきた。
どっちにしてもこのままでは使い物にならないな。設定で何とかなるんだろうか。