Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : getent passwd



fons
14-05-2003, 12:46
ich hab hier ein script, das profile- und computer-accounts in ldap für samba erstellt.
genommen aus einem thread von linuxforen.de (http://www.linuxforen.de/forums/showthread.php?s=&threadid=54052)

das komische ist es funktioniert mit usern(-u test), aber nicht mit computerkonen(-m test$)


der teil mit den uid sagt mir immer


admincontrol: line 1: : command not found
admincontrol: line 2: : command not found

und muss mit <STRG>+<C> abgebroche werden
ps axf sagt, er hängt sich bei

awk -F: {if ($3 > 3000) print $3}
auf

was könnte das sein?
danke


#Samba-Variablen
PROFILE='\\192.168.238.216\profiles\'$2
HOMEDIR='\\192.168.238.216\'$2
HOMEDRIVE='h:'
LOGONSCRIPT='start.bat'

case "$1"
in

-u)
if [ "$2" ]
then

#Eventuell bestehende ldif-Datei löschen
rm /tmp/useradd.ldif 2>/dev/null

#freie UID ermitteln
S_UID=1000
NEW_UID=$(getent passwd |\
awk -F: '{if ($3 > '$S_UID') print $3}' |\
sort -un |\
awk 'BEGIN {flag=0;prev='$S_UID'}
{if ($1 == prev+1) prev=$1
else {print prev+1;flag=1;exit 0}
}
END {if (flag == 0) print prev+1}')


#Posix Account einrichten
echo dn: cn=$2,dc=asdf,dc=com > /tmp/useradd.ldif
echo objectClass: Account >> /tmp/useradd.ldif
echo objectClass: posixAccount >> /tmp/useradd.ldif
echo cn: $2 >> /tmp/useradd.ldif
echo uid: $2 >> /tmp/useradd.ldif
echo uidNumber: $NEW_UID >> /tmp/useradd.ldif
echo gidNumber: 200 >> /tmp/useradd.ldif
echo homeDirectory: /daten/home/$2 >> /tmp/useradd.ldif
echo loginShell: /bin/false >> /tmp/useradd.ldif
ldapadd -D cn=admin,dc=asdf,dc=com -x -W -f /tmp/useradd.ldif

#Homeverzeichnis für User erstellen
mkdir /daten/home/$2
chown $NEW_UID:100 /daten/home/$2

#Samba Account einrichten
echo "Passwort des Users eingeben"
/usr/bin/pdbedit -a -u $2
/usr/bin/pdbedit -s $LOGONSCRIPT -h $HOMEDIR -d $HOMEDRIVE -p $PROFILE -u $2 1>/dev/null

else
echo "Kein Username angegeben"

fi
;;
-m)
if [ "$2" ]
then

#Eventuell bestehende ldif-Datei löschen
rm /tmp/pcadd.ldif 2>/dev/null

#freie ID für Rechner ermitteln
S_UID="3000"
NEW_UID=$(getent passwd |\
awk -F: '{if ($3 > '$S_UID') print $3}' |\
sort -un |\
awk 'BEGIN {flag=0;prev='$S_UID'}
{if ($1 == prev+1) prev=$1
else {print prev+1;flag=1;exit 0}
}
END {if (flag == 0) print prev+1}')

#Maschinen Account einrichten
echo dn: cn=$2,dc=asdf,dc=com > /tmp/pcadd.ldif
echo objectClass: Account >> /tmp/pcadd.ldif
echo objectClass: posixAccount >> /tmp/pcadd.ldif
echo cn: $2 >> /tmp/pcadd.ldif
echo uid: $2 >> /tmp/pcadd.ldif
echo uidNumber: 2001 >> /tmp.pcadd.ldif
#echo uidNumber: $NEW_UID >> /tmp/pcadd.ldif
echo gidNumber: 200 >> /tmp/pcadd.ldif
echo homeDirectory: /dev/null >> /tmp/pcadd.ldif
echo loginShell: /bin/false >> /tmp/pcadd.ldif
ldapadd -D cn=admin,dc=asdf,dc=com -x -W -f /tmp/pcadd.ldif
else
echo "Kein Rechnername angegeben"
fi
;;

-s)
if [ "$2" ]
then

/usr/local/samba/bin/smbpasswd $2
else
echo "Kein Username angegeben"
fi
;;


-i)
echo .:User-Informationen:.
/usr/bin/pdbedit -v -u $2
quota -v -u $2
;;
*)
echo .:Syntax:.
echo "Neuer User: admincontrol -u <username>"
echo "Neuer Rechner: admincontrol -m <rechnername$>"
echo "Neues Passwort: admincontrol -s <username>"
echo "User Informationen: admincontrol -i <username>"

;;
esac

fons
14-05-2003, 13:37
ich weiß nicht wieso , aber es geht jetzt
verdammt was war das