tl; dr基本的な(しかし機能している)LDAP/PAM構成を想定すると、既存のUNIX/LDAPユーザーをSambaに追加しようとすると、なぜsmbpasswdがこのエラーメッセージで失敗するのですか?
私は基本的ですが、パスワードなどがロードされたアカウントがほとんどないDebianサーバーでLDAPセットアップを実行しており、対応するUNIXアカウントが作成されています。また、動作しているように見える基本的なPAM/NSS構成もあります。
LDAP経由でログインしてアカウントを使用できます。ここで、Sambaを使用して単純なファイル共有を構成し、PAM/LDAPバックエンドを介してユーザーを認証するようにします。 smbpasswd
ユーティリティを使用してSambaユーザーを作成する必要がありますが、これによりエラーが発生します。
まず、LDAPパスワードを設定します。
# smbpasswd -W
次に、LDAPで既に構成されているユーザーを追加してみました。
# smbpasswd -a new_user
New SMB password:
Retype SMB password:
Failed to add entry for user new_user.
したがって、このコマンドが失敗する理由はわかりません。最初は、LDAPディレクトリのユーザーをsambaSamAccount
sにする必要があるためだと思いました。そこで、ユーザーのLDIFファイルを次のように更新しました。
dn: cn=new_user,ou=group,dc=example,dc=com
cn: new_user
gidNumber: 1000
objectClass: top
objectClass: posixGroup
dn: uid=new_user,ou=people,dc=example,dc=com
objectClass: top
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
objectClass: sambaSamAccount
uid: new_user
uidNumber: 1000
gidNumber: 1000
cn: test user
sn: new_user
mail: [email protected]
loginShell: /bin/bash
homeDirectory: /home/new_user
sambaSID: 3000
sambaDomainName: TEST-ROME
上記のLDIFに加えられた唯一の変更は、sambaSamAccount
をobjectClass
およびsambaSID
およびsambaDomainName
として追加したことです。最終的にはPDCを実装したいので、とにかくsambaSamAccount
が必要だと確信しています。
ただし、それでも同じエラーが発生します。
では、どうすればこのエラーをデバッグできますか?
[〜#〜] resolve [〜#〜]提案されたようにデーモンをデバッグした後、smbpasswd
が空のbase dn
フィールドでクエリを実行していたため、結果。これは、ldap suffix
フィールドとldap user suffix
フィールドをsmb.conf
に追加することで修正されました。その後、sambaSIDを生成する正しい方法が必要であることに気付きましたが、それは別の問題です。
この問題をデバッグする最良の方法は、LDAPの観点から何が起こっているかを確認することです。まず、「ps aux | grep slapd」を実行して、デーモンに渡される引数を取得します。システム(CentOS 5.6)では次のようになります。
/ usr/sbin/slapd -h ldap:/// -u ldap
Slapdデーモンを停止し(/etc/init.d/slapd stopまたは類似)、「-d」フラグを使用してデーモンを対話的に(つまり、コマンドラインから)実行します。 -1(-dの引数として)は良い出発点です。つまり、すべてをログに記録します。
/ usr/sbin/slapd -h ldap:/// -u ldap -d -1
これが情報が多すぎる場合は、「-d」のパラメータを読んでください。メモリから256をかなり使用しました。アイデアは、いくつかの有用な出力を与えるために平手打ちをしてから、問題を再現することです。どこがうまくいかないかを示す有用な出力が得られる場合があります。
ユーザーをローカルログインユーザーに追加するだけです
例の場合:
そうすれば、あなただけがユーザーをsambaユーザーとして追加できます。