web-dev-qa-db-ja.com

smbpasswd:ユーザーのエントリを追加できませんでした

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ディレクトリのユーザーをsambaSamAccountsにする必要があるためだと思いました。そこで、ユーザーの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に加えられた唯一の変更は、sambaSamAccountobjectClassおよびsambaSIDおよびsambaDomainNameとして追加したことです。最終的にはPDCを実装したいので、とにかくsambaSamAccountが必要だと確信しています。

ただし、それでも同じエラーが発生します。

では、どうすればこのエラーをデバッグできますか?


[〜#〜] resolve [〜#〜]提案されたようにデーモンをデバッグした後、smbpasswdが空のbase dnフィールドでクエリを実行していたため、結果。これは、ldap suffixフィールドとldap user suffixフィールドをsmb.confに追加することで修正されました。その後、sambaSIDを生成する正しい方法が必要であることに気付きましたが、それは別の問題です。

2
Mr. Shickadance

この問題をデバッグする最良の方法は、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をかなり使用しました。アイデアは、いくつかの有用な出力を与えるために平手打ちをしてから、問題を再現することです。どこがうまくいかないかを示す有用な出力が得られる場合があります。

2
Patrick Rynhart

ユーザーをローカルログインユーザーに追加するだけです

例の場合:

useradd smbuser

smbpasswd -a smbuser

そうすれば、あなただけがユーザーをsambaユーザーとして追加できます。