Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

[gelöst] Passwort ändern Samba / LDAP / Apache

Alles rund um die Server (Web-, Mail-, Datenbank-, Datenaustausch-, etc.) die man unter Linux betreiben kann

Moderator: Moderatoren

Antworten
Benutzeravatar
Phillinger
Member
Member
Beiträge: 106
Registriert: 12. Jul 2004, 13:08
Wohnort: Weinheim

[gelöst] Passwort ändern Samba / LDAP / Apache

Beitrag von Phillinger » 11. Jan 2012, 11:56

Hi,

ich stelle hier für unsere kleine Firma mit drei Geschäftsstellen per Web ein kleines Portal zum Arbeiten. Webserver ist der apache2. Die einzelnen User sind in einem OpenLDAP-Verzeichnis eingetragen, der Web-Login funktioniert soweit prima.

Samba greift für die Logins (security = user, nur Dateiaustausch benötigt, keine Domäne) ebenfalls auf den LDAP zurück, auch das funktioniert soweit prima. Rein zur Info hier mal die [global]-Section meiner smb.cnf:

Code: Alles auswählen

[global]
        netbios name    = albert
        server string   = Server Albert
        workgroup       = beispiel.org

        security        = user

        domain master   = yes
        local master    = yes
        wins support    = true
        os level        = 254

        guest account   = nobody
        guest ok        = yes

        log level       = 3

        passdb backend          = ldapsam:ldap://localhost
        ldap suffix             = dc=beispiel,dc=org
        ldap admin dn           = cn=admin,dc=beispiel,dc=org
        ldap ssl                = no
        ldap passwd sync        = Yes
        ldap machine suffix     = ou=Computers
        ldap group suffix       = ou=Groups
        ldap user suffix        = ou=Users

        load printers           = no
        show add printer wizard = no
        printing                = none
        printcap name           = /dev/null
        disable spoolss         = yes
Etwas kompliziert wird es nun, wenn jemand sein Passwort ändern will. Hier behelfe ich mir mit einem kleinen Web-Formular und ein paar Zeilen PHP:

Code: Alles auswählen

    // Passwort über smbpasswd ändern!
    // Durch passwd sync = yes in smb.conf wird sambaNTpassword UND userPassword geändert.
    // www-data darf laut /etc/sudoers nur smbpasswd per sudo ausführen

    $command    = 'echo "'.$newpasswd1.'\n'.$newpasswd2.'\n" | sudo /usr/bin/smbpasswd -s -a '.$Uid;

    // Passwortänderung durchführen
    system($command, $sysRetval);
    if($sysRetval != 0)
    {
        return -50;  // interner Systemfehler
    }

    return 0; // Erfolg
Meine Kommentare im Code erklären ja schon den Kern der Sache: "Durch passwd sync = yes in smb.conf wird sambaNTpassword UND userPassword geändert."

Das ganze funktioniert, ist aber verdammt unelegant. Außerdem ist es recht unschön, zuvor alle möglichen Sonderzeichen zu escapen oder zu verbieten, da man ja de facto ein Eingabefeld im Web hat, dass dann mit Root-Rechten auf der Bash ausgeführt wird.

Alles in allem kneifft mich diese Lösung gewaltig in der Magengrube und ich wollte mich an euch hier wenden, ob und wie man so etwas anders lösen könnte?
Zuletzt geändert von Phillinger am 16. Jan 2012, 16:25, insgesamt 1-mal geändert.

Werbung:
stka
Moderator
Moderator
Beiträge: 3287
Registriert: 1. Jun 2004, 13:56
Wohnort: 51°58'34.91"N 7°38'37.47"E
Kontaktdaten:

Re: Passwort ändern Samba / LDAP / Apache

Beitrag von stka » 11. Jan 2012, 12:37

Wenn du eh nur Windows-Clients hast warum dann nicht auch einen Domaincontroller, dann können die Benutzer ganz normal über windows ihr passwort ändern.
Du hörst nicht auf zu laufen weil du alt wirst. Du wirst alt weil du aufhörst zu laufen.
Das neue Buch http://www.kania-online.de/fachbuecher

Benutzeravatar
Phillinger
Member
Member
Beiträge: 106
Registriert: 12. Jul 2004, 13:08
Wohnort: Weinheim

Re: Passwort ändern Samba / LDAP / Apache

Beitrag von Phillinger » 11. Jan 2012, 12:50

Die Clients sind ziemlich heterogen. Von Windows über Linux, Android und Apple ist alles dabei. Deshalb ist alles auf einen sehr kleinen gemeinsamen Nenner zusammen geschrumpft.

Benutzeravatar
Phillinger
Member
Member
Beiträge: 106
Registriert: 12. Jul 2004, 13:08
Wohnort: Weinheim

Re: Passwort ändern Samba / LDAP / Apache

Beitrag von Phillinger » 16. Jan 2012, 13:11

Hat denn keiner eine Idee? :(

stka
Moderator
Moderator
Beiträge: 3287
Registriert: 1. Jun 2004, 13:56
Wohnort: 51°58'34.91"N 7°38'37.47"E
Kontaktdaten:

Re: Passwort ändern Samba / LDAP / Apache

Beitrag von stka » 16. Jan 2012, 14:49

Sorry, aber da bin ich raus, wenn es um Programmierung geht. Wenn dein Web-Interface funktioniert, warum willst du das ändern. Vielleicht postest du das Script mal im Programmierforum und fragst dort ob die da bei der Optimierung helfen kann. Das scheint mir dann mehr ein Programmierproblem zu sein. Versuchs mal.
Du hörst nicht auf zu laufen weil du alt wirst. Du wirst alt weil du aufhörst zu laufen.
Das neue Buch http://www.kania-online.de/fachbuecher

Benutzeravatar
Phillinger
Member
Member
Beiträge: 106
Registriert: 12. Jul 2004, 13:08
Wohnort: Weinheim

Re: Passwort ändern Samba / LDAP / Apache

Beitrag von Phillinger » 16. Jan 2012, 16:25

Funktionieren tut es ja. Nur dachte ich halt, dass da vielleicht schon eine viel elegantere, fertige Methode existiert.

Ok, ich setze den Thread mal auf [gelöst] und optimiere bei Bedarf mit Hilfe der Programmier-Sektion mein Skript. Gerade beim Sonderzeichen abfischen kann man bestimmt noch optimieren.

Merci! :)

Antworten