web-dev-qa-db-ja.com

Sambaが「samba-tool」で新しいユーザーを追加しないのはなぜですか?

サーバー14.04 LTSを実行しているDell Poweredge 860でSamba共有を設定しようとしています。 Sambaはアンインストールされたので(選択したとき)、設定するだけです。 Windowsマシンに接続しようとしています。

私の設定ファイル(以下にリストされています)は有効なようです。エラーは発生しません。これは、オンラインのチュートリアルで見つけたものの修正版です。

[global]
        workgroup = HOME
        server string = Samba Ubuntu Server
        map to guest = Bad User
        log file = /var/log/samba/log.%m
        max log size = 50
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
        local master = No
        dns proxy = No
        idmap config * : backend = tdb

[Queue]
        comment = "A small folder to move files from/to the server. For use by server admin."
        path = /serv/samba/queue
        valid users = penguin
        read only = No
        create mask = 0777
        directory mask = 0777

そこは大丈夫です。 (penguinという名前のアカウントもありますが、penguinが唯一のユーザーアカウントであるため、samba-toolを使用してすべてのユーザーを構成することに注意してください。現在よりも多くのユーザーが存在します)。

penguin@Ubuntu-Server-1:~/serv/samba$ Sudo samba-tool user add penguin
New Password:
Retype Password:
ERROR(<type 'exceptions.ValueError'>): Failed to add user 'penguin':  - unable to parse dn string
  File "/usr/lib/python2.7/dist-packages/samba/netcmd/user.py", line 176, in run
    uid=uid, uidnumber=uid_number, gidnumber=gid_number, gecos=gecos, loginshell=login_Shell)
  File "/usr/lib/python2.7/dist-packages/samba/samdb.py", line 343, in newuser
    dnsdomain = ldb.Dn(self, self.domain_dn()).canonical_str().replace("/", "")

システム上にない別のユーザー名でも試してみました。機能しません。

エラーなしで簡単なSudo samba-tool user listを達成することさえできません!

ERROR(ldb): uncaught exception - ldb_search: invalid basedn '(null)'
  File "/usr/lib/python2.7/dist-packages/samba/netcmd/__init__.py", line 175, in _run
    return self.run(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/samba/netcmd/user.py", line 271, in run
    attrs=["samaccountname"])

何が間違っていますか?

7

私の知る限り、samba-toolはActive Directory(AC)プロビジョニング専用です。したがって、SambaをACサーバーとしてセットアップしていない場合、samba-tool user addは機能しません。

ネットワークにActive Directoryサーバーが必要かどうか、または自分のユーザーだけで簡単なSambaサーバーのみが必要かどうかを自問する必要があります。

ACサーバーが必要な場合は、sambaプロジェクト自体が提供するガイドに従う必要があります( https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO )。ただし、このドキュメントはubuntuに直接適合しないため、それに依存する内容(DNS、Kerberos、LDAP)を理解する必要があることに注意してください。

専用のアカウントを持ち、いくつかの共有フォルダーへのアクセスを提供する単純なサーバーのみが必要な場合は、samba3のガイドに従う必要があります。 Samba4はこれらのsamba3のセットアップと互換性がありますが、sambaでユーザーを作成するにはsmbpasswdが必要です。 buntu Server Documentation の「General Samba Guides」には、必要なすべての情報が記載されています。

7
tvn

代わりにターミナルでこれを書いてください:

smbpasswd -a penguin

また、追加するユーザーは、新しいユーザーのようにUbuntuシステムに追加する必要があります。

それを使用して行うことができます

Sudo useradd penguin

または

Sudo adduser penguin
7
Gustav G

この「バグ」は、非常に多くの異なる形式で表示されるため、分類が誤っている可能性があります。 2014年にさかのぼるバグレポートを見つけました。

samba-toolユーザーリスト...が繰り返し失敗します。ただし、samba-toolに関連する他のすべてのコマンドも同様です。ただし、samba-tool -V(バージョン番号は正しく報告されます)

氷山のヒント(または「ヒント」と言う必要があります):

acel:/ mnt/nsd#samba-tool user list不明なパラメーターが検出されました: "acl xattr update mtime"無視される不明なパラメーター "acl xattr update mtime" ERROR(ldb):キャッチされない例外-ldb_search:無効なbasedn '(null)'ファイル "/usr/lib/python2.7/dist-packages/samba/netcmd/init.py"、175行目の_run return self.run(* args、* * kwargs)ファイル「/usr/lib/python2.7/dist-packages/samba/netcmd/user.py」、行292、実行attrs = ["samaccountname"])acel:/ mnt/nsd#samba-toolユーザーリストエラー(ldb):キャッチされていない例外-ldb_search:無効なbasedn '(null)'
ファイル「/usr/lib/python2.7/dist-packages/samba/netcmd/init.py」、175行目の_run return self.run(* args、* * kwargs)ファイル "/usr/lib/python2.7/dist-packages/samba/netcmd/user.py"、行292、実行attrs = ["samaccountname"])acel:/ mnt/nsd#which ldb ldb : コマンドが見つかりません。

問題? 1つのシステムでこれに遭遇した後、他の3つの独立したシステム(すべてUbuntu)でsamba-toolをチェックしましたが、samba-toolもそれらで壊れていました。バグレポートで同様の兆候へのいくつかの孤立した参照を見つけましたが、その一部は4〜6年前に遡ります。また、バグが「修正」されたという報告もいくつか見つかりました...(このバリエーションは修正されていません)。

私がやりたかったのは、Orphanを削除して、sambaユーザー/パスワードデータベースがクリーンであることを確認することだけでした。明らかに、samba-toolが機能していない場合(そして私の場合、Sambaを実行している4台のサーバーがあり、それらのいずれでも機能していない場合)、修正する必要があります。

私が提供できる他の唯一の手がかり:私が読んだ1つの参考文献は、考えられる原因としてSambaのパスワード同期機能に言及しました。これは、sambaが/ etc/passwdファイルの元の双子の名前を変更して作成したOrphan sambaユーザーIDを検出したときに発生しました。私は、samba-toolを使用して孤児を削除しようとしていました。しかし、sambaがそのユーザーデータベースをシステムと同期させようとして、元のユーザーが見つからないと判断した場合、何らかの損害が発生した可能性があると思います。(?)

これは答えではありません。そのバグはおそらくまだそこにあり、影響を受けているかどうかを確認するのに最適な場所は、samba-toolの単純な関数を実行して、正しく動作するかどうかを確認することです。

たとえば、「samba-tool user list」または「samba-tool dbcheck」。

私のすべて(1 V4.7および3 V4.3)が壊れています。 (お役に立てれば。)

1
Tb Thomas