Hallo @ all.
Wir schreiben zZ in PHP, mysql an einem Teil unserer Schulwebseite und wollen einen bereich, in dem nur Schüler, die sich mit korrekten Netzwerkusername/Netzwerkpasswort eingelogged haben. das ganz läuft auf artkur - c't Komm. Server für Schulen. Niemand von uns hat AHnung von Bash bzw Linux. Wir haben dieses Bashscript rausgekramt, welches das NW Passwort eines User ändert:
es wäre wirklich eine rieseig Hilfe, wenn einer von Euch Linuxpros dieses Script so umschreiben könnte, dass es bei korrekten oldpass / username einfach nur true zurück gibt und bei falschem halt false.
VIelen Vielen, Seeeeeeehr Vielen Dank!!!!!!!
Natürlich ist es auch eine Hilfe wenn jemand sagen könnte falls es mit einem einzigen linux befehl möglich ist (hab aber beim googln nix gefunden) username / passwort zu überprüfen!
MfG
Wir schreiben zZ in PHP, mysql an einem Teil unserer Schulwebseite und wollen einen bereich, in dem nur Schüler, die sich mit korrekten Netzwerkusername/Netzwerkpasswort eingelogged haben. das ganz läuft auf artkur - c't Komm. Server für Schulen. Niemand von uns hat AHnung von Bash bzw Linux. Wir haben dieses Bashscript rausgekramt, welches das NW Passwort eines User ändert:
Code:
#!/bin/bash
#
# change.cgi
#
# Copyright (C) 1997 Andreas Furbach <zene@afu.ping.de>
# Anpassungen an V3.0 von Reiner Klaproth <klaproth@online.de>
# Neues Lock-Schema Klaus Werner < kwerner@ash.ks.he.schule.de>
passchange ()
{
local SU_ID=SuSuSuSu
local OK_ID=OkOkOkOk
local LCK_ID=LCKLCK
test -z "${FORM_newpass}" && return 2
local RESULT="$(echo "${FORM_oldpass}" | /bin/su -s /bin/bash -l -c \
"(echo "${SU_ID}"; \
{ echo "${FORM_oldpass}" | \
sudo /usr/sbin/passchange ${FORM_newpass} > /dev/null ; \
erg="\$\?" ; }; \
if [ "\$erg" -eq "0" ]; then echo "${OK_ID}" ; \
elif [ "\$erg" -eq "3" ]; then echo "${LCK_ID}" ; \
fi ) " \
${FORM_uid} )"
test -n "$(echo "${RESULT}" | grep "${LCK_ID}")" && return 3
test -n "$(echo "${RESULT}" | grep "${OK_ID}")" && return 0
test -n "$(echo "${RESULT}" | grep "${SU_ID}")" && return 1
return 2
}
read QUERY_STRING
export QUERY_STRING
eval `cgiparse -form`
cgiutils -ct text/html -expires now
cat << xxxxxEOFxxxxx
<html>
<head>
<title>Passwort Abfrage</title>
</head>
<body background="whttxtr2.jpg">
<h1 align=center>Passwort ändern</h1>
<hr>
<h3 align=center><font color="#FF0000">Schließen Sie den Browser, bevor
Sie den Arbeitsplatz verlassen!</font></h3>
<hr>
<CENTER><H3>
xxxxxEOFxxxxx
if [ "${FORM_newpass}" = "${FORM_newpass1}" ]; then
FEHLER=0
# Stufe 1: Gibts den User?
x=`grep "^${FORM_uid}:" /etc/passwd`
if [ -z $x ]; then
echo "<P><FONT COLOR=\"#800000\">Zugriff abgelehnt!</FONT><BR>"
FEHLER=1
elif [ `echo $x | cut -d: -f3` -lt 1000 ]; then
echo "<P><FONT COLOR=\"#800000\">Zugriff abgelehnt!</FONT><BR>"
FEHLER=1
fi
# Zweite Stufe: Ist das Passwort brauchbar?
lpass=${#FORM_newpass}
if [ $lpass -lt 5 ]; then
echo "<P><FONT COLOR=\"#800000\">Das neue Passwort war zu kurz!</FONT><BR>"
FEHLER=1
fi
echo "${FORM_newpass}" | grep -q -v -E "[^A-Za-z0-9_-]"
if [ $? != 0 ] ; then
echo "<P><FONT COLOR=\"#800000\">Das neue Passwort enthielt ungültige Zeichen! </FONT><BR>"
FEHLER=1
fi
# letzter Test: funzt das alte Passwort?
echo "${FORM_oldpass}" | grep -q -v -E "[^A-Za-z0-9_-]"
if [ $? != 0 -o ${#FORM_oldpass} -lt 3 ] ; then
echo "<P><FONT COLOR=\"#A00000\">Das alte Passwort war ungültig!</FONT><BR>"
FEHLER=1
fi
if [ $FEHLER = 0 ]; then
passchange
RESULT="${?}"
if [ "${RESULT}" = "0" ]; then
echo "<P><FONT COLOR=\"#008000\">Passwort geändert!</FONT>"
elif [ "${RESULT}" = "3" ]; then
echo "<P><FONT COLOR=\"#800000\">Interface-Anforderung in Bearbeitung</FONT><BR>"
FEHLER=1
else
echo "<P><FONT COLOR=\"#800000\">Zugriff abgelehnt!</FONT><BR>"
if test -s /tmp/passchange ; then
cat /tmp/passchange
rm -f /tmp/passchange
fi
FEHLER=1
fi
fi
else
echo "<p>Sie haben sich bei der Eingabe des neuen Passworts vertippt!</p>"
FEHLER=1
fi
if [ $FEHLER = 1 ]; then
echo "<p>Das Passwort wurde nicht geändert!</p>"
echo "<p><a href=\"pass.htm\"><img src=\"redarrow.gif\" align=bottom border=0 width=25 height=13>Versuchen Sie es noch einmal! </a></p>"
fi
cat << xxxxxEOFxxxxx
</H3></CENTER>
<hr>
© Klaus Werner, Reiner Klaproth, 01.10.1999
</body>
</html>
xxxxxEOFxxxxx
VIelen Vielen, Seeeeeeehr Vielen Dank!!!!!!!
Natürlich ist es auch eine Hilfe wenn jemand sagen könnte falls es mit einem einzigen linux befehl möglich ist (hab aber beim googln nix gefunden) username / passwort zu überprüfen!
MfG