1 votes

Synchronisation automatique des mots de passe entre Linux et Samba

Rien n'a été trouvé sur le Net : Je cherche une synchronisation automatique des mots de passe linux vers samba (PAS Samba vers Linux). J'ai écrit un formulaire web cgi qui change ce mot de passe directement dans le fichier shadow, en utilisant un mot de passe crypté (pour des raisons de sécurité, je ne veux pas permettre que les mots de passe soient stockés en clair dans les fichiers journaux). Je n'utilise pas LDAP. Tout irait bien si l'utilisateur se connectait pour la première fois en utilisant ssh, mais j'ai des utilisateurs qui n'utilisent que Windows, et je ne peux donc pas demander, par exemple, à une secrétaire de le faire.

En fait, ce que j'ai fait jusqu'à présent, c'est ceci : vi /etc/pam.d/common-password

password        required                        pam_smbpass.so nullok use_authtok use_first_pass
  • J'ai aussi essayé changepassword-0.9, mais il y a un bug qui n'a jamais été résolu par son programmeur.
  • Swat n'est pas une solution pour moi.

J'ai trouvé les sites suivants, mais j'ai encore du mal à les trouver...

- http://uranus.chrysocome.net/linux/smbfs/pam_smbpass.html

- https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/4/html/System_Administration_Guide/Configuring_a_Samba_Server-Encrypted_Passwords.html

voici le code de mon cgi perl script :

# Crypt the password here so that it cannot be read in any logflie
my $cryptedShadowString = `echo "$new_passwd1"|openssl passwd -1 -stdin`;
chomp($cryptedShadowString);
(...)
open($result, '-|') || exec $SUDO, $EXECUTINGSCRIPT, $login, $old_passwd, $cryptedShadowString, $cryptedShadowString;

Cela enverra le mot de passe crypté à un autre script perl qui l'écrira directement dans le fichier shadow. (Tous les éléments sont protégés par shibboleth, donc je ne me soucie pas des hackers venant du monde entier).

J'ai essayé quelque chose comme ça dans l'exécution script, mais malheureusement ce n'est pas la solution :

    # Do a first login to chat the new password to the samba password file:
sleep 2; # sleep a bit, for the next command:
system(" ( echo '') | exec '/bin/su' $login");

Quelqu'un peut-il m'aider ? Je vous remercie.

-2voto

drookie Points 7850

C'est en fait la raison d'être d'un domaine. Utilisez soit un domaine AD, soit samba comme DC, ou simplement LDAP comme backend pour les mots de passe. Actuellement, vous réinventez la roue, et cette roue a la forme d'un triangle.

En outre, vous essayez d'obtenir de l'aide pour peaufiner ce que vous pensez être une solution pour une tâche probablement courante, sans mentionner de quelle tâche il s'agit. Je parie qu'il s'agit d'une tâche standard, à moins que vous ne fassiez des recherches avancées (mais je suis désolé, votre message ne donne clairement pas cette impression).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X