Petros writes:

> Unrelated, I looked for a password changer myself yesterday, for a
> LDAP backend, and found
> http://www.symfony-project.org/plugins/upSimpleLdapPlugin

I wrote the below to deal with Windows Home users.

    $ cat /var/www/pwreset.html
    <!-- THIS DOES NOT EVEN TRY TO BE SECURE.  DO NOT EXPOSE THIS TO MALICIOUS 
NETWORKS. -->
    <!-- THIS KLUDGE IS ONLY UNTIL DOMAIN LOGINS ARE ENABLED.  IT IS NOT 
PERMANENT. -->
    <html><body><form action=/cgi-bin/pwreset method=post>
    Username: <input name=u type=text /><br>
    Old password: <input name=o type=password><br>
    New password: <input name=n type=password><br>
    <input type=submit>
    </form></body></html>

    $ cat /usr/lib/cgi-bin/pwreset
    #!/bin/bash
    # This is a CGI script that expects input on stdin (i.e. POST, not GET).
    # THIS DOES NOT EVEN TRY TO BE SECURE.  DO NOT EXPOSE THIS TO MALICIOUS 
NETWORKS.
    # THIS KLUDGE IS ONLY UNTIL DOMAIN LOGINS ARE ENABLED.  IT IS NOT PERMANENT.

    set -eEu
    set -o pipefail
    trap "echo PASSWORD NOT CHANGED" ERR
    printf 'Content-Type: text/plain\n\n'
    exec 2> >(logger -t pwreset)

    d="$(cat)"
    u="$(grep -Eo 'u=[^=&]+' <<<"$d" | cut -c3-)"
    o="$(grep -Eo 'o=[^=&]+' <<<"$d" | cut -c3-)"
    n="$(grep -Eo 'n=[^=&]+' <<<"$d" | cut -c3-)"
    ## This would only set the NIS schema, not the Samba schema, and thus is no 
good.
    #ldappasswd -D "uid=$u,ou=people,o=Frobozz" -w "$o" -s "$n"
    ## Therefore instead we set the password via samba.
    smbpasswd -r piserver1 -U "$u" -s <<< "$o
    $n
    $n"

    echo PASSWORD CHANGED

_______________________________________________
luv-main mailing list
[email protected]
http://lists.luv.asn.au/listinfo/luv-main

Reply via email to