password di sincronizzazione samba con password unix su debian wheezy


11

Ho installato samba sul mio server e sto provando a scrivere uno script per risparmiarmi i due passaggi per aggiungere l'utente, ad esempio:

adduser username
smbpasswd -a username

I miei smb.confstati:

# 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

Ulteriori letture mi hanno portato alla pdbeditpagina man che afferma:

   -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.

Quindi ... ora ho deciso di provare ad aggiungere un utente con smbpasswd:

1 ° tentativo, l'utente unix non esiste ancora:

root@raspberrypi:/home/pi# smbpasswd -a newuser
New SMB password:
Retype new SMB password:
Failed to add entry for user newuser.

2 ° tentativo, esiste l'utente unix:

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

Quindi, ora mi chiedo:

  1. come faccio a sincronizzare le password samba con le password unix?
  2. dove sono archiviate le password di samba?

Qualcuno può aiutarmi a illuminarmi?


Le password sono archiviate nei database /var/lib/samba/, credo che le password siano presenti secrets.tdbma non ne sono certa. Per quanto riguarda la tua precedente domanda, dubito che ci sia un modo semplice.
Zoredache,

Risposte:


10

Bene ... il link mancante era:

 libpam-smbpass

Quindi, dopo aver installato questi pacchetti, funziona come previsto. La memoria a lungo termine di Internet a volte porta solo informazioni parziali. Quindi, per combattere questo, sto pubblicando qui il link corretto su come sincronizzare le password samba con le password unix e anche il mio 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$ 

Spero che questo aiuti qualcun'altro.

aggiornamento 2017:

libpam-smbpassè deprecato . Sembra che cosa è sostituito pam_winbindd. È possibile installare il pacchetto libpam-winbindper ottenerlo. Questo, tuttavia, non sincronizza ancora le password di samba con le tue password unix. Invece ti permette di autenticarti per unix con un Windows Authentication Server (AD). Puoi trovare informazioni al riguardo qui: https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller


2
Il collegamento è interrotto, ecco perché abbiamo inserito informazioni utili nella risposta: /
ubiquibacon,

@ubiquibacon Ho modificato questa risposta in modo che il collegamento faccia ora riferimento alla versione archiviata dalla Wayback Machine (grazie al buon lavoro svolto dagli utenti di Internet Archive).
Anthony Geoghegan,

1
pam_smbpass sembra essere deprecato
alex.forencich,

Sì, non riesco più a trovare libpam-smbpasssu un sistema Debian 9.1 e inoltre non funziona per me. Com'è possibile che questa semplice domanda sia stata posta così tante volte e non abbia ancora risposta?
Frank Breitling,

@ Oz123 Nessuno dei due libpam-winbindNON può essere trovato in CentOS7.
CHENJIAN,

3

Volevo commentare la risposta precedente ma non potevo farlo per mancanza di punti reputazione. Ho cercato di mettere il contenuto completo su questa risposta, ma non è stato possibile, come detto, che sembrava spam. ecco l'accesso al contenuto completo sulla macchina di ritorno, e di seguito è la breve versione dei punti principali:

Sincronizzazione password Unix e Samba su Debian Etch

Installa i seguenti pacchetti:

# apt-get install libpam-smbpass smbclient

Unix -> Samba

Per aggiornare la password di Samba ogni volta che un utente cambia la sua password Unix, cambia

/etc/pam.d/common-password: da

password   required   pam_unix.so nullok obscure min=4 max=8 md5

per

password   requisite**  pam_unix.so nullok obscure min=4 max=8 md5
password   required   pam_smbpass.so nullok use_authtok try_first_pass

La modifica di "obbligatorio" in "requisito" per pam_unix farà in modo che se la modifica della password Unix fallisce, l'esecuzione dei plugin termina immediatamente.

Affinché ciò funzioni, gli utenti devono già disporre di account Samba e le loro password Samba devono corrispondere alle password Unix. Poiché questo non è necessariamente il caso, dobbiamo cambiare

/etc/pam.d/common-auth: da

auth    required        pam_unix.so nullok_secure

per

auth    requisite       pam_unix.so nullok_secure
auth    optional        pam_smbpass.so migrate

Questo creerà un utente Samba, se non esiste già, e cambierà la sua password con la password Unix, ogni volta che l'utente accede utilizzando SSH o qualsiasi altro servizio che utilizza l'autenticazione di sistema predefinita (common-auth).

Dovresti visualizzare un messaggio Utente aggiunto quando accedi utilizzando SSH con un account che non ha già un account Samba.

Poiché questo creerà anche un account Samba per root, potresti voler disabilitare l'accesso root in Samba (Debian Etch lo ha disabilitato di default):

/etc/samba/smb.conf:

invalid users = root

Avvertenza : non funzionerà se l'utente accede tramite SSH o altri servizi senza utilizzare una password (ad esempio utilizzando l'autenticazione con chiave pubblica / privata). In questo caso, PAM non avrà la password in testo normale, necessaria per creare la password Samba.

Avviso : quando si modifica la password comune per richiedere anche gli aggiornamenti delle password Samba, tutti gli utenti attualmente connessi non saranno in grado di modificare la propria password utilizzando "passwd" fino a quando non accedono nuovamente, a meno che non abbiano già un account Samba esistente con una password uguale alla loro password Unix.

Samba -> Unix

Informiamo Samba di utilizzare PAM quando si cambiano le password:

/etc/samba/smb.conf:

unix password sync = yes
pam password change = yes

Riavvia Samba usando /etc/init.d/samba restart.

Configurare PAM per supportare la modifica della password da parte di Samba aggiungendo @include common-password:

/etc/pam.d/samba:

@include common-auth
@include common-account
@include common-session
@include common-password

Questo utilizzerà lo stesso meccanismo per modificare le password quando si utilizza Samba come quando si utilizza "passwd". Ciò significa che richiederà un aggiornamento della password Unix prima di tentare di modificare la password Samba.

Creare nuovi utenti

usa chpasswd per evitare errori:

# useradd test
# echo “test:newpass” | chpasswd

pam_smbpass sembra essere deprecato
alex.forencich,

@Joru Tramite la compilazione sorgente di samba 4.9.1 su CentOS7, non esiste alcun file di pam_smbpass.so. Mi potete aiutare? link: stackoverflow.com/questions/52932070/...
CHENJIAN

@CHENJIAN SAMBA.ORG ha rimosso pam_smbpass.so dai sorgenti con SAMBA 4. Quindi l'ultima versione di Samba che ho potuto trovare era samba 3.9.16
Axel Werner,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.