PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Samba /etc/passwd mit smbpasswd synchen



Dmulec
10.11.08, 15:36
Hallo, meine aufgabe ist es smbpasswd mit /etc/passwd zu synchronisieren, und das Samba standardmässig alle account infos in /etc/samba/smbpasswd schreibt.

Wie mache ich diese dinge? Denn atm scheint Samba in tdbsam schreiben und ich habe kA wie ich an tdbsam rankomme, sie anschauen kann, editieren kann etc. und wie schon gesagt es soll alles in /etc/samba/smbpasswd schreiben.

Mein OS: Debian 4 Etch
Samba Version: 3.0.24

EDIT: Das Problem mit /etc/samba/smbpasswd habe ich nun gelöst, doch wie kriege ich nun die Synchronisation zwischen smbpasswd und /etc/passwd hin?

madfool
10.11.08, 16:05
Hi,

vielleicht hilft dir folgendes weiter:

http://www.64-bit.de/dokumentationen/netzwerk/b/001/25741-20.htm#TopOfPage

Gruß,
D.

Zoidby
10.11.08, 18:03
Hey,

warum nicht linken?

ln -s /etc/samba/smbpasswd /etc/passwd

HirschHeisseIch
10.11.08, 20:19
Weil die beiden eine völlig unterschiedliche Syntax haben.

Und wenn man schon linkt, dann doch bitte anders herum. ;) Nicht, dass hinterher nurnoch die Samba-User bestehen, und wichtige System-User damit gelöscht werden.

michaxyz
11.11.08, 13:06
Hallo,

Ich habe in der /etc/samba/smb.conf folgendes stehen:

# Passwords
encrypt passwords = true
unix password sync = yes
passwd program = /opt/userverwaltung/SambaPassChat %u
passwd chat = *Password* %n\n *changed*

Das Script /opt/userverwaltung/SambaPassChat:

#!/bin/sh

. /opt/ratse/functions

help (){
echo "Dies ist eine Zwischenschicht f�r das �ndern des Passworts, wenn der"
echo "Benutzer es unter Windows �ndern will. Es erwartet nur den Benutzernamen."
echo "Danach wird ein Chat gestartet, der dem von /usr/bin/passwd nachempfunden"
echo "ist. Der Benutzername und das Passwort werden an ratse.SetPasswd"
echo "weitergegeben. Daher ist das Programm nur f�r root:root les- und ausf�hrbar."
echo
echo "Usage: SambaPassChat <User>"
}

case ${1} in
--help)
help
exit 0
;;
"")
help
exit 1
;;
*)
if [ ! $# == 1 ];
then
help
exit 1
fi

# --------------------------------------------------------------------------
# nun kann es losgehen

user=${1}

# --------------------------------------------------------------------------
# Passwort abfragen (nur so kriegen wir es von Samba mitgeschickt. ;-)

read -p "New Password: " pass

echo "Password changed."

$(/sbin/ratse.SetPasswd $user $pass >> /var/log/ratse/smbpass)

ret = $?

if [ $ret = 0 ];
then
echo "Password changed."
else
echo "Password change failure. See /var/log/ratse/smbpass."
fi

exit $ret
;;

esac


Das Script /sbin/ratse.SetPasswd schließlich ruft die Systemfunktionen auf und ändert dort die Passwörter.

Mfg Michael