Announcement

Collapse
No announcement yet.

pwchange external - neue Passwort wird nicht übergeben ?!

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • pwchange external - neue Passwort wird nicht übergeben ?!

    Hallo,

    ich bin dabei die Erweiterung zur externen Passwortänderung zu installieren.
    Als Grundlage habe http://oxpedia.org/index.php?title=C...sswordExternal
    genommen.
    Nachdem ich mit
    zypper install open-xchange-passwordchange-servlet
    nachinstalliert habe, kann ich mein Script auch ausführen ...
    Da ich zum testen erstmal sehen wollte, was kommt, habe ich folgende
    bash script eingefügt:

    ----------------
    #!/bin/bash
    date >> /tmp/PW.log
    echo "Parameter "$1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 >> /tmp/PW.log
    echo " " >> /tmp/PW.log
    exit 0
    -----------------

    Und das kommt raus

    Wed Sep 22 09:54:23 CEST 2010
    Parameter --cid X --username XX --userid XXX --oldpassword XXXX --newpassword --cid0 --cid1 --cid2

    D.h. Context ID kommt an, USERNAME, UID und das alte pw, aber nicht das neue!
    Da wir samba als PDC (gegen LDAP) verwenden, wollte ich eigentlich nur smbpasswd
    im script verwenden. Aber wo ist das neue PW ?

    Oder habe ich da etwas missverstanden ?

  • #2
    Hi,

    eigentlich sollten die Parameter wie folgt übergeben werden:

    An Stelle

    0
    1 die cid des users,
    2
    3 der username des users,
    4
    5 die userid des users,
    6
    7 das alte Passwort des Users,
    8
    9 das neue Passwort des Users,

    Zumindest bei mir kann ich so die Daten abgreifen und weiter verarbeiten.

    MfG

    outlow

    Comment


    • #3
      Hallo,

      ich benutze folgendes Script ohne Erfolg:

      #!/usr/bin/expect -f
      set USER [lindex $argv 5]
      set OLDPW [lindex $argv 7]
      set PASSWD [lindex $argv 9]
      stty -echo
      spawn -noecho smbpasswd -r DOMAINCONTROLLER -U $USER

      expect {
      "Old SMB password:" {
      sleep 0.5
      send "$OLDPW\r"
      exp_continue
      }
      "New SMB password:" {
      sleep 0.5
      send "$PASSWD\r"
      exp_continue
      }
      "Retype new SMB password:" {
      sleep 0.5
      send "$PASSWD\r"
      exp_continue
      }
      {
      exit 0
      }
      }

      -------

      Übergebe ich die Parameter direkt auf der Kommandozeile geht alles.
      Fehlermeldung I/O-Fehler (SRV-0002,-564707210-19)

      Comment


      • #4
        Sep 24, 2010 11:33:31 AM com.openexchange.passwordchange.script.impl.Script PasswordChange update
        SEVERE: Passwordchange script returned exit code != 0
        Sep 24, 2010 11:33:31 AM com.openexchange.passwordchange.servlet.PasswordCh angeServlet actionPutUpdate
        SEVERE: SRV-0002 Category=8 Message=An I/O error occurred exceptionID=-1816622180-7
        Throwable occurred: SRV-0002 Category=8 Message=An I/O error occurred exceptionID=-1816622180-7
        at com.openexchange.passwordchange.script.impl.Script PasswordChange.update(ScriptPasswordChange.java:15 1)
        at com.openexchange.passwordchange.PasswordChangeServ ice.perform(PasswordChangeService.java:103)
        at com.openexchange.passwordchange.servlet.PasswordCh angeServlet.actionPutUpdate(PasswordChangeServlet. java:207)
        at com.openexchange.passwordchange.servlet.PasswordCh angeServlet.actionPut(PasswordChangeServlet.java:1 63)
        at com.openexchange.passwordchange.servlet.PasswordCh angeServlet.doPut(PasswordChangeServlet.java:127)
        at javax.servlet.http.HttpServlet.service(HttpServlet .java:619)
        at com.openexchange.ajax.AJAXServlet.service(AJAXServ let.java:392)
        at com.openexchange.ajax.SessionServlet.service(Sessi onServlet.java:174)
        at javax.servlet.http.HttpServlet.service(HttpServlet .java:689)
        at com.openexchange.ajp13.najp.AJPv13RequestHandlerIm pl.doServletService(AJPv13RequestHandlerImpl.java: 504)
        at com.openexchange.ajp13.AJPv13Request.response(AJPv 13Request.java:129)
        at com.openexchange.ajp13.najp.AJPv13RequestHandlerIm pl.createResponse(AJPv13RequestHandlerImpl.java:31 6)
        at com.openexchange.ajp13.najp.AJPv13ConnectionImpl.c reateResponse(AJPv13ConnectionImpl.java:207)
        at com.openexchange.ajp13.najp.AJPv13Task.call(AJPv13 Task.java:346)
        at java.util.concurrent.FutureTask$Sync.innerRun(Futu reTask.java:315)
        at java.util.concurrent.FutureTask.run(FutureTask.jav a:150)
        at com.openexchange.threadpool.internal.CustomThreadP oolExecutor$Worker.runTask(CustomThreadPoolExecuto r.java:738)
        at com.openexchange.threadpool.internal.CustomThreadP oolExecutor$Worker.run(CustomThreadPoolExecutor.ja va:764)
        at java.lang.Thread.run(Thread.java:736)
        Caused by: SRV-0002 Category=8 Message=An I/O error occurred exceptionID=-1816622180-6
        ... 19 more

        --------
        Auf dem PDC kommt KEINE Anfrage an.
        Rufe ich das script wie folgt auf
        /opt/tools/bin/ox_change_pw.sh aa bb cc dd ee ff gg hh ii jj
        bekomme ich auf dem PDC
        [2010/09/23 16:02:15, 2] lib/smbldap.c:smbldap_open_connection(800)
        smbldap_open_connection: connection opened
        [2010/09/23 16:02:15, 2] auth/auth.c:check_ntlm_password(318)
        check_ntlm_password: Authentication for user [ff] -> [ff] FAILED with error NT_STATUS_NO_SUCH_USER


        Nur gegen LDAP das PW zu ändern ist keine Lösung, da dann das Windoff PW nicht angepasst wird.
        smbpasswd macht beides.

        Ciao

        Comment


        • #5
          wie sind den die auführungsrechte für die datei?

          darf der open-xchange benutzer die datei ausführen?

          Der E/A Fehler ist der Standard Fehler des Bündels diesen bekommst du immer angezeigt wenn der Rückgabe Wert des Scriptes nicht "0" ist.

          also bei Script abbruch etc.

          mfg

          outlow

          Comment


          • #6
            Rechte sind 755.
            Hab es auf der cli getestet, da bekam ich zumindest immer einen Eintrag beim PDC ...

            Comment


            • #7
              und wenn du erst einmal nur ein script schreibst welches die parameter entgegen nimmt und in ein Logfile einträgt?

              Zum einen sehen wir dann ob die durch dich eingegebenen Parameter in der OX Oberfläche zum Passwortchange auch die sind die du Logst, zum anderen sollte dies bei erfolg ja dann auch entsprechend eine Erfolgsmeldung im OX auslösen.

              Comment

              Working...
              X