Samba-Synchronisierungskennwort mit Unix-Kennwort unter Debian Wheezy

Samba-Synchronisierungskennwort mit Unix-Kennwort unter Debian Wheezy

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.confZustä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 pdbediteine 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:

  1. Wie synchronisiere ich Samba-Passwörter mit Unix-Passwörtern?
  2. 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-smbpassist veraltet. Es scheint, dass es durch ersetzt wurde pam_winbindd. Sie können das Paket installieren, libpam-winbindum 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

verwandte Informationen