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 pdbedit
page 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:
- comment synchroniser les mots de passe samba avec les mots de passe unix?
- où sont stockés les mots de passe samba?
Quelqu'un peut-il m'aider à m'éclairer?
/var/lib/samba/
, je crois que les mots de passe sont dedanssecrets.tdb
mais je ne suis pas certain. Quant à votre ancienne question, je doute qu'il existe un moyen simple.Réponses:
Eh bien ... le lien manquant était:
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.
J'espère que ça aidera quelqu'un d'autre.
mise à jour 2017:
libpam-smbpass
est obsolète . Il semble que ce qui l'a remplacépam_winbindd
. Vous pouvez installer le packagelibpam-winbind
pour 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_Controllerla source
libpam-smbpass
plus 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?libpam-winbind
peut être trouvé dans CentOS7.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:
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
à
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
à
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:
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:
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:
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:
la source
pam_smbpass.so
. Pouvez-vous m'aider? lien: stackoverflow.com/questions/52932070/…