Mengapa Samba tidak menambahkan pengguna baru dengan "samba-tool"?


8

Saya mencoba mengonfigurasi pangsa Samba pada server Dell Poweredge 860 saya yang berjalan 14.04 LTS. Samba datang dihapus (ketika saya memilihnya), jadi saya hanya perlu mengkonfigurasinya. Saya mencoba menghubungkannya ke mesin Windows saya.

File konfigurasi saya (tercantum di bawah) tampaknya valid. Saya tidak mendapatkan kesalahan dengan itu. Ini adalah versi modifikasi dari sesuatu yang saya temukan di tutorial online.

[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

Tidak apa-apa di sana. (Saya harus mencatat bahwa saya juga memiliki nama akun penguin, tetapi saya ingin semua pengguna dikonfigurasikan menggunakan samba-toolkarena penguinhanya akun pengguna yang ada di dalamnya, dan akan ada lebih banyak pengguna daripada yang ada sekarang).

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("/", "")

Saya sudah mencobanya juga dengan nama pengguna lain yang tidak ada di sistem. Itu tidak bekerja.

Aku bahkan tidak bisa menyelesaikan yang sederhana sudo samba-tool user listtanpa kesalahan!

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"])

Apa yang saya lakukan salah?

Jawaban:


7

Sejauh yang saya tahu samba-toolhanya untuk penyediaan Active Directory (AC). Jadi, jika Anda belum mengatur Samba sebagai server AC, samba-tool user addtidak akan berfungsi.

Anda harus bertanya pada diri sendiri apakah Anda memerlukan Active Directory Server di Jaringan Anda atau apakah Anda hanya perlu Samba-Server sederhana hanya dengan pengguna itu sendiri.

Jika Anda membutuhkan AC Server, Anda harus mengikuti panduan yang disediakan oleh proyek samba itu sendiri ( https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO ). Tetapi berhati-hatilah, dokumentasi ini tidak sesuai dengan ubuntu secara langsung dan Anda perlu memahami hal-hal yang bergantung padanya (yaitu DNS, Kerberos, LDAP).

Jika Anda hanya memerlukan server sederhana yang memiliki beberapa Akun untuk keperluan itu sendiri dan menyediakan akses ke beberapa folder bersama, Anda harus mengikuti panduan untuk samba3. Samba4 kompatibel dengan pengaturan ini untuk samba3 dan meskipun Anda perlu smbpasswdmembuat pengguna di samba. "General Samba Guides" dari Dokumentasi Server Ubuntu harus memberi Anda semua informasi yang Anda butuhkan.


7

Tulis saja ini di terminal:

smbpasswd -a penguin

Dan pengguna yang Anda tambahkan harus ditambahkan dalam sistem Ubuntu, seperti pengguna baru.

Itu bisa dilakukan menggunakan

sudo useradd penguin

atau

sudo adduser penguin

1

Saya khawatir 'bug' ini mungkin salah dikategorikan, karena muncul dalam berbagai bentuk. Saya baru saja menemukan laporan bug kembali ke 2014, melaporkan hal yang persis sama yang saya temui:

daftar pengguna alat samba ... gagal berulang kali. Tetapi kemudian, maka lakukan semua perintah lain yang melibatkan samba-tool, kecuali: samba-tool -V (yang melaporkan nomor versi dengan benar)

Inilah ujung (atau saya harus mengatakan 'tip') dari gunung es:

acel: / mnt / nsd # samba-tool daftar pengguna Parameter yang tidak diketahui menemui: "acl xattr update mtime" Mengabaikan parameter tidak dikenal "acl xattr update mtime" ERROR (ldb): pengecualian yang tidak tertangkap - ldb_search: invalid basedn '(null)' File " /usr/lib/python2.7/dist-packages/samba/netcmd/ init .py ", baris 175, di _run return self.run (* args, ** kwargs) File" /usr/lib/python2.7/ dist-package / samba / netcmd / user.py ", baris 292, dalam run attrs = [" samaccountname "]) acel: / mnt / nsd # daftar pengguna alat-samba ERROR (ldb): pengecualian tanpa perhatian - ldb_search: invalid basedn '(null)'
File "/usr/lib/python2.7/dist-packages/samba/netcmd/ init.py ", baris 175, di _run return self.run (* args, ** kwargs) File" /usr/lib/python2.7/dist-packages/samba/netcmd/user.py ", baris 292, dalam proses attrs = ["samaccountname"]) acel: / mnt / nsd # which ldb ldb: Perintah tidak ditemukan.

Masalah? Setelah menemukan ini pada satu sistem, saya memeriksa samba-tool pada tiga sistem independen lainnya (semua Ubuntu), dan samba-tool rusak pada mereka juga. Saya telah menemukan beberapa referensi terisolasi untuk manifestasi serupa dalam laporan bug, beberapa akan kembali 4-6 tahun. Saya juga menemukan beberapa laporan bug telah 'diperbaiki' ... (variasi ini tidak diperbaiki).

Yang ingin saya lakukan adalah memastikan basis data pengguna / kata sandi samba bersih, dengan menghapus anak yatim, dan saya tidak bisa. Jelas, jika samba-tool tidak berfungsi (dan dalam kasus saya, saya memiliki 4 server yang menjalankan Samba, dan itu tidak bekerja pada salah satu dari mereka) itu perlu diperbaiki.

Satu-satunya petunjuk lain yang dapat saya tawarkan: satu referensi yang saya baca menyebutkan fitur sinkronisasi kata sandi di Samba sebagai kemungkinan penyebabnya. Saya mengalami ini ketika samba menemukan userid yatim samba, yang telah saya buat dengan mengganti nama kembaran aslinya di file / etc / passwd. Saya hanya mencoba menggunakan samba-alat untuk menghapus anak yatim. Tapi saya kira itu mungkin ketika samba mencoba menyinkronkan database penggunanya dengan sistem, dan menemukan pengguna asli hilang, beberapa kerusakan dilakukan. (?)

Ini bukan jawaban. Ini hanya saran bahwa bug tersebut mungkin masih ada di luar sana, dan tempat terbaik untuk mulai memeriksa untuk melihat apakah Anda terpengaruh, adalah menjalankan fungsi-fungsi sederhana samba-tool, untuk melihat apakah bug tersebut berfungsi dengan baik:

'daftar pengguna alat samba' atau 'samba-alat dbcheck' misalnya.

Semua milik saya (1 V4.7 & 3 V4.3) rusak. (Semoga ini membantu.)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.