Dlaczego Samba nie dodaje nowego użytkownika za pomocą „narzędzia samba”?

8

Próbuję skonfigurować udział Samba na moim Dell Poweredge 860 z uruchomionym serwerem 14.04 LTS. Samba została odinstalowana (kiedy ją wybrałem), więc muszę ją tylko skonfigurować. Próbuję podłączyć go do mojego komputera z systemem Windows.

Mój plik konfiguracyjny (wymieniony poniżej) wydaje się być prawidłowy. Nie mam z tym żadnych błędów. To zmodyfikowana wersja czegoś, co znalazłam w samouczku 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

Wszystko w porządku. (Powinienem zauważyć, że mam również konto o nazwie penguin, ale chcę, aby wszyscy użytkownicy zostali skonfigurowani przy użyciu, samba-toolponieważ penguinjest to jedyne konto użytkownika, które będzie na nim dostępne, i będzie więcej użytkowników niż obecnie).

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

Próbowałem również z inną nazwą użytkownika, która nie jest w systemie. To nie działa

Nie mogę nawet wykonać prostego sudo samba-tool user listbez błędów!

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

Co ja robię źle?

Anonimowy pingwin
źródło

Odpowiedzi:

7

O ile mi wiadomo, dotyczy samba-toolto tylko administrowania usługą Active Directory (AC). Więc jeśli nie skonfigurowałeś Samby jako serwera AC, samba-tool user addnie będzie działać.

Powinieneś zadać sobie pytanie, czy potrzebujesz serwera Active Directory w swojej sieci, czy potrzebujesz tylko prostego serwera Samba tylko z własnymi użytkownikami.

W przypadku, gdy potrzebujesz serwera AC, powinieneś postępować zgodnie z instrukcją dostarczoną przez sam projekt samby ( https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO ). Ale uwaga, ta dokumentacja nie pasuje bezpośrednio do Ubuntu i musisz zrozumieć rzeczy, które są od niej zależne (mianowicie DNS, Kerberos, LDAP).

Jeśli potrzebujesz tylko prostego serwera, który ma kilka kont na swój własny cel i zapewnia dostęp do niektórych folderów współdzielonych, powinieneś postępować zgodnie z instrukcjami dla samba3. Samba4 jest kompatybilny z tymi ustawieniami do samba3 i chociaż musisz smbpasswdutworzyć użytkownika w sambie. „Ogólne przewodniki po Sambie” w dokumentacji serwera Ubuntu Server powinny zawierać wszystkie potrzebne informacje.

tvn
źródło
7

Po prostu napisz to w terminalu:

smbpasswd -a penguin

Dodanego użytkownika należy dodać w systemie Ubuntu, podobnie jak nowy użytkownik.

Można to zrobić za pomocą

sudo useradd penguin

lub

sudo adduser penguin
Gustav G.
źródło
1

Obawiam się, że ten „błąd” może być źle sklasyfikowany, ponieważ pojawia się w wielu różnych formach. Właśnie znalazłem raport o błędzie z 2014 roku, zgłaszający dokładnie to samo, co napotkałem:

Lista użytkowników samba-tool ... wielokrotnie się nie udaje. Ale tak samo, jak wszystkie inne polecenia dotyczące narzędzia samba, z wyjątkiem: samba-tool -V (który poprawnie zgłasza numer wersji)

Oto wierzchołek góry lodowej (lub powinienem powiedzieć „tip”):

acel: / mnt / nsd # lista użytkowników samba-tool Napotkano nieznany parametr: „acl xattr update mtime” Ignorowanie nieznanego parametru „acl xattr update mtime” BŁĄD (ldb): nieprzechwycony wyjątek - ldb_search: nieprawidłowy oparty „plik” /usr/lib/python2.7/dist-packages/samba/netcmd/ init .py ", wiersz 175, w pliku _run return self.run (* args, ** kwargs) File" /usr/lib/python2.7/ dist-packages / samba / netcmd / user.py ", wiersz 292, w uruchomieniu attrs = [" samaccountname "]) acel: / mnt / nsd # lista użytkowników narzędzia samba BŁĄD (ldb): wyjątek nieprzechwycony - ldb_search: niepoprawny na podstawie „(null)„
Plik ”/usr/lib/python2.7/dist-packages/samba/netcmd/ init.py ”, wiersz 175, w _run zwraca self.run (* args, ** kwargs) Plik„ /usr/lib/python2.7/dist-packages/samba/netcmd/user.py ”, wiersz 292, w biegu attrs = ["samaccountname"]) acel: / mnt / nsd # which ldb ldb: Nie znaleziono polecenia.

Problem? Po napotkaniu tego na jednym systemie, sprawdziłem samba-tool na trzech innych niezależnych systemach (wszystkie Ubuntu), i samba-tool również został na nich uszkodzony. Znalazłem kilka pojedynczych odniesień do podobnych manifestacji w raportach o błędach, niektóre sięgają 4-6 lat. Znalazłem także kilka raportów o tym, że błąd został „naprawiony” ... (ta odmiana nie jest naprawiona).

Chciałem tylko upewnić się, że baza danych użytkowników / haseł samby była czysta, usuwając sierotę, a ja nie mogłem. Oczywiście, jeśli narzędzie samba nie działa (iw moim przypadku mam 4 serwery działające na Sambie i nie działa na żadnym z nich), należy to naprawić.

Jedyna inna wskazówka, jaką mogę zaoferować: w jednym czytaniu wspomniałem o możliwej przyczynie synchronizacji haseł w Sambie. Zetknąłem się z tym, gdy samba napotkała osierocony identyfikator użytkownika samby, który utworzyłem, zmieniając nazwę jego oryginalnego bliźniaka w pliku / etc / passwd. Właśnie próbowałem użyć narzędzia samba do usunięcia sieroty. Ale przypuszczam, że możliwe jest, że kiedy samba spróbowała zsynchronizować bazę danych użytkowników z systemem i stwierdziła brak oryginalnego użytkownika, nastąpiło pewne uszkodzenie. (?)

To nie jest odpowiedź. To tylko sugestia, że ​​błąd prawdopodobnie nadal istnieje, a najlepszym miejscem do sprawdzenia, czy problem dotyczy, jest uruchomienie prostych funkcji narzędzia samba, aby sprawdzić, czy działa poprawnie:

Na przykład „lista użytkowników samba-tool” lub „samba-tool dbcheck”.

Wszystkie moje (1 V4.7 i 3 V4.3) są zepsute. (Mam nadzieję że to pomoże.)

Tb Thomas
źródło