Ich habe Samba auf meinem Server installiert und versuche, ein Skript zu schreiben, das mir die beiden Schritte zum Hinzufügen eines Benutzers erspart, z. B.:
adduser username
smbpasswd -a username
Meine smb.conf
Zustände:
# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
unix password sync = yes
Beim weiteren Lesen stieß ich auf pdbedit
eine Manpage, auf der steht:
-a This option is used to add a user into the database. This com-
mand needs a user name specified with the -u switch. When adding
a new user, pdbedit will also ask for the password to be used.
Example: pdbedit -a -u sorce
new password:
retype new password
Note
pdbedit does not call the unix password syncronisation script if
unix password sync has been set. It only updates the data in the
Samba user database.
If you wish to add a user and synchronise the password that im-
mediately, use smbpasswd’s -a option.
Also ... jetzt habe ich beschlossen, zu versuchen, einen Benutzer mit folgendem hinzuzufügen smbpasswd
:
1. Versuch, Unix-Benutzer existiert immer noch nicht:
root@raspberrypi:/home/pi# smbpasswd -a newuser
New SMB password:
Retype new SMB password:
Failed to add entry for user newuser.
2. Versuch, Unix-Benutzer existiert:
root@raspberrypi:/home/pi# useradd mag
root@raspberrypi:/home/pi# smbpasswd -a mag
New SMB password:
Retype new SMB password:
Added user mag.
# switch to user pi, and try to switch to mag
root@raspberrypi:/home/pi# su pi
pi@raspberrypi ~ $ su mag
Password:
su: Authentication failure
Deshalb frage ich mich jetzt:
- Wie synchronisiere ich Samba-Passwörter mit Unix-Passwörtern?
- wo werden Samba-Passwörter gespeichert?
Kann mir jemand helfen, mich aufzuklären?
Antwort1
Nun... das fehlende Bindeglied war:
libpam-smbpass
Nach der Installation dieser Pakete funktioniert es wie erwartet. Das Langzeitgedächtnis des Internets liefert manchmal nur unvollständige Informationen. Um dem entgegenzuwirken, veröffentliche ich hier den richtigen Link, wie manSamba-Passwörter mit Unix-Passwörtern synchronisieren, und auch mein eigener Test.
root@raspberrypi:/home/pi# passwd mag2
passwd: user 'mag2' does not exist
root@raspberrypi:/home/pi# useradd mag2
root@raspberrypi:/home/pi# echo "mag2:12345" | chpasswd
root@raspberrypi:/home/pi# smbclient -L localhost -U mag2
Enter mag2's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.6]
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
IPC$ IPC IPC Service (raspberrypi server)
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.6]
Server Comment
--------- -------
RASPBERRYPI raspberrypi server
Workgroup Master
--------- -------
WORKGROUP
root@raspberrypi:/home/pi# su pi
pi@raspberrypi ~ $ su mag2
Password:
Added user mag2.
mag2@raspberrypi:/home/pi$
Ich hoffe, das hilft jemand anderem.
Aktualisierung 2017:
libpam-smbpass
ist veraltet. Es scheint, dass es durch ersetzt wurde pam_winbindd
. Sie können das Paket installieren, libpam-winbind
um es zu erhalten. Dies synchronisiert jedoch weiterhin keine Samba-Passwörter mit Ihren Unix-Passwörtern. Stattdessen können Sie sich mit einem Windows-Authentifizierungsserver (AD) gegenüber Unix authentifizieren. Informationen dazu finden Sie hier:https://wiki.samba.org/index.php/Samba_als_Active_Directory_Domain-Controller_einrichten
Antwort2
Wollte die vorherige Antwort kommentieren, konnte es aber aufgrund fehlender Reputationspunkte nicht tun. Habe versucht, den vollständigen Inhalt dieser Antwort hinzuzufügen, konnte es aber nicht, da es hieß, dass es wie Spam aussah.Hierist der Zugriff auf den vollständigen Inhalt auf der Wayback-Maschine. Es folgt die Kurzfassung der wichtigsten Punkte:
Unix- und Samba-Passwortsynchronisierung auf Debian Etch
Installieren Sie die folgenden Pakete:
# apt-get install libpam-smbpass smbclient
Unix -> Samba
Um das Samba-Passwort zu aktualisieren, wenn ein Benutzer sein Unix-Passwort ändert, ändern Sie
/etc/pam.d/common-password: von
password required pam_unix.so nullok obscure min=4 max=8 md5
Zu
password requisite** pam_unix.so nullok obscure min=4 max=8 md5
password required pam_smbpass.so nullok use_authtok try_first_pass
Durch Ändern von „erforderlich“ in „voraussetzung“ für pam_unix wird sichergestellt, dass die Ausführung von Plugins sofort beendet wird, wenn die Änderung des Unix-Passworts fehlschlägt.
Damit dies funktioniert, müssen Benutzer bereits Samba-Konten haben und ihre Samba-Passwörter müssen mit ihren Unix-Passwörtern übereinstimmen. Da dies nicht unbedingt der Fall ist, müssen wir
/etc/pam.d/common-auth: von
auth required pam_unix.so nullok_secure
Zu
auth requisite pam_unix.so nullok_secure
auth optional pam_smbpass.so migrate
Dadurch wird ein Samba-Benutzer erstellt (sofern dieser noch nicht vorhanden ist) und sein Kennwort in das Unix-Kennwort geändert, wenn sich der Benutzer über SSH oder einen anderen Dienst anmeldet, der die Standardsystemauthentifizierung (Common Auth) verwendet.
Wenn Sie sich per SSH mit einem Konto anmelden, das noch kein Samba-Konto hat, sollte die Meldung „Benutzer hinzugefügt“ angezeigt werden.
Da dadurch auch ein Samba-Konto für Root erstellt wird, möchten Sie möglicherweise den Root-Zugriff in Samba deaktivieren (bei Debian Etch ist er standardmäßig deaktiviert):
/etc/samba/smb.conf:
invalid users = root
Vorbehalt: Dies funktioniert nicht, wenn sich der Benutzer über SSH oder andere Dienste ohne Passwort anmeldet (beispielsweise durch Authentifizierung mit öffentlichem/privatem Schlüssel). In diesem Fall verfügt PAM nicht über das Klartextpasswort, das zum Erstellen des Samba-Passworts erforderlich ist.
Beachten: Wenn Sie das allgemeine Passwort so ändern, dass auch Aktualisierungen von Samba-Passwörtern erforderlich sind, können aktuell angemeldete Benutzer ihr Passwort nicht mit „passwd“ ändern, bis sie sich erneut anmelden, es sei denn, sie haben bereits ein bestehendes Samba-Konto mit einem Passwort, das ihrem Unix-Passwort entspricht.
Samba -> Unix
Wir weisen Samba an, beim Ändern von Passwörtern PAM zu verwenden:
/etc/samba/smb.conf:
unix password sync = yes
pam password change = yes
Starten Sie Samba mit /etc/init.d/samba restart neu.
Konfigurieren Sie PAM so, dass es die Änderung des Passworts durch Samba unterstützt, indem Sie @include common-password hinzufügen:
/etc/pam.d/samba:
@include common-auth
@include common-account
@include common-session
@include common-password
Dies verwendet denselben Mechanismus zum Ändern von Passwörtern bei Verwendung von Samba wie bei Verwendung von „passwd“. Dies bedeutet, dass vor dem Versuch, das Samba-Passwort zu ändern, eine Aktualisierung des Unix-Passworts erforderlich ist.
Neue Benutzer erstellen
verwenden Sie chpasswd, um Fehler zu vermeiden:
# useradd test
# echo “test:newpass” | chpasswd