mot de passe de synchronisation samba avec mot de passe unix sur debian wheezy


11

J'ai installé samba sur mon serveur et j'essaie d'écrire un script pour m'épargner les deux étapes pour ajouter un utilisateur, par exemple:

adduser username
smbpasswd -a username

Mes smb.confétats:

# 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

Une lecture plus poussée m'a amené à la pdbeditpage de manuel qui dit:

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

Alors ... maintenant j'ai décidé d'essayer d'ajouter un utilisateur avec smbpasswd:

1er essai, l'utilisateur unix n'existe toujours pas:

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

2ème essai, l'utilisateur unix existe:

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

Alors maintenant je me demande:

  1. comment synchroniser les mots de passe samba avec les mots de passe unix?
  2. où sont stockés les mots de passe samba?

Quelqu'un peut-il m'aider à m'éclairer?


Les mots de passe sont stockés dans les bases de données dans /var/lib/samba/, je crois que les mots de passe sont dedans secrets.tdbmais je ne suis pas certain. Quant à votre ancienne question, je doute qu'il existe un moyen simple.
Zoredache

Réponses:


10

Eh bien ... le lien manquant était:

 libpam-smbpass

Ainsi, après l'installation de ces packages, cela fonctionne comme prévu. La mémoire à long terme d'Internet n'apporte parfois que des informations partielles. Donc, pour lutter contre cela, je publie ici le lien correct pour synchroniser les mots de passe samba avec les mots de passe unix , et aussi mon propre 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$ 

J'espère que ça aidera quelqu'un d'autre.

mise à jour 2017:

libpam-smbpassest obsolète . Il semble que ce qui l'a remplacé pam_winbindd. Vous pouvez installer le package libpam-winbindpour l'obtenir. Cependant, cela ne synchronise toujours pas les mots de passe Samba avec vos mots de passe Unix. Au lieu de cela, il vous permet de vous authentifier sous Unix avec un serveur d'authentification Windows (AD). Vous pouvez trouver des informations à ce sujet ici: https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller


2
Le lien est cassé, c'est pourquoi nous avons mis de précieuses informations dans la réponse: /
ubiquibacon

@ubiquibacon J'ai édité cette réponse afin que le lien pointe maintenant vers la version archivée de la Wayback Machine (grâce au bon travail effectué par les gens d'Internet Archive).
Anthony Geoghegan

1
pam_smbpass semble obsolète
alex.forencich

Oui, je ne trouve libpam-smbpassplus de système Debian 9.1 et cela ne fonctionne pas non plus pour moi. Comment se fait-il que cette simple question ait été posée tant de fois et n'a toujours pas de réponse?
Frank Breitling

@ Oz123 Aucun des deux ne libpam-winbindpeut être trouvé dans CentOS7.
CHENJIAN

3

Je voulais commenter la réponse précédente, mais je n'ai pas pu le faire faute de points de réputation. J'ai essayé de mettre le contenu complet sur cette réponse, mais cela n'a pas pu car il a dit que cela ressemblait à du spam. voici l'accès au contenu complet sur la machine de retour, et voici la version brève des principaux points:

Synchronisation des mots de passe Unix et Samba sur Debian Etch

Installez les packages suivants:

# apt-get install libpam-smbpass smbclient

Unix -> Samba

Afin de mettre à jour le mot de passe Samba chaque fois qu'un utilisateur change son mot de passe Unix, changez

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

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

à

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

Changer "requis" en "requis" pour pam_unix s'assurera que si le changement de mot de passe Unix échoue, l'exécution des plugins se termine immédiatement.

Pour que cela fonctionne, les utilisateurs doivent déjà avoir des comptes Samba et leurs mots de passe Samba doivent correspondre à leurs mots de passe Unix. Parce que ce n'est pas forcément le cas, il faut changer

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

auth    required        pam_unix.so nullok_secure

à

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

Cela créera un utilisateur Samba, s'il n'existe pas déjà, et changera son mot de passe en mot de passe Unix, chaque fois que l'utilisateur se connectera en utilisant SSH ou tout autre service qui utilise l'authentification système par défaut (Common-Auth).

Vous devriez voir un message Utilisateur ajouté lorsque vous vous connectez en utilisant SSH avec un compte qui n'a pas déjà de compte Samba.

Parce que cela créera également un compte Samba pour root, vous voudrez peut-être désactiver l'accès root dans Samba (Debian Etch l'a désactivé par défaut):

/etc/samba/smb.conf:

invalid users = root

Avertissement : cela ne fonctionnera pas si l'utilisateur se connecte via SSH ou d'autres services sans utiliser de mot de passe (par exemple en utilisant l'authentification par clé publique / privée). Dans ce cas, PAM n'aura pas le mot de passe en texte brut, qui est nécessaire pour créer le mot de passe Samba.

Remarque : lorsque vous modifiez le mot de passe commun pour exiger également des mises à jour des mots de passe Samba, les utilisateurs actuellement connectés ne pourront pas modifier leur mot de passe à l'aide de "passwd" jusqu'à ce qu'ils se reconnectent, sauf s'ils ont déjà un compte Samba existant avec un mot de passe égal à leur mot de passe Unix.

Samba -> Unix

Nous demandons à Samba d'utiliser PAM lors du changement de mots de passe:

/etc/samba/smb.conf:

unix password sync = yes
pam password change = yes

Redémarrez Samba en utilisant /etc/init.d/samba restart.

Configurez PAM pour prendre en charge le changement de mot de passe par Samba en ajoutant @include common-password:

/etc/pam.d/samba:

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

Cela utilisera le même mécanisme pour changer les mots de passe lors de l'utilisation de Samba que lors de l'utilisation de "passwd". Cela signifie qu'il faudra une mise à jour du mot de passe Unix avant d'essayer de changer le mot de passe Samba.

Création de nouveaux utilisateurs

utilisez chpasswd pour éviter l'erreur:

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

pam_smbpass semble être obsolète
alex.forencich

@Joru Par compilation de samba 4.9.1 sur CentOS7, il n'y a aucun fichier de pam_smbpass.so. Pouvez-vous m'aider? lien: stackoverflow.com/questions/52932070/…
CHENJIAN

@CHENJIAN SAMBA.ORG a supprimé pam_smbpass.so des sources avec SAMBA 4. Donc, la dernière version de Samba que j'ai pu trouver était samba 3.9.16
Axel Werner
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.