RE: bash script modosítása
Sütő Péter
sucy at bkgsz.hu
2007. Okt. 4., Cs, 08:17:02 CEST
Üdv!
1. lehetőség:
Készítesz egy input fájlt, ami úgy néz ki, hogy a bekért adatokat egymás alatt a bekérési sorrendbe teszed, az utolsó sorba írsz egy üres sort (és elnevezed felhasznalok.lst néven), a scriptet kiegészíted ciklusossá, a usernév bekérésekor üres sorra vizsgálva kiugrási feltételként, akkor standard inputként használhatod (szerintem) a fájlt..
Tehát úgy hívod meg, hogy ldap-useradd.sh <felhasznalok.lst
2. lehetőség:
Átírod ezt a scriptet úgy, hogy ne bekérje, hanem paraméteresen adod meg neki a szükséges dolgokat, majd készítesz egy másik scriptet, ami ezt hívja meg a megfelelő paraméterekkel. A másik scriptet kb. 5%-kal több meló megcsinálni, mint az előző lehetőségben a felhasznalok fájlt...
Sücy
-----Original Message-----
From: Sulek Szabolcs [mailto:vjadmin at mail.vargaj-bp.sulinet.hu]
Sent: Thursday, October 04, 2007 8:08 AM
To: techinfo at lista.sulinet.hu
Subject: bash script modosítása
Üdv!
Elkészült az LDAP szerverem. Leszedtem egy scriptet, amellyel LDAP usereket lehet felvenni a kész szerverhez.
Tökéletesen műxik, de azt szeretném elérni, hogy fileból szedje a júzerek kellő adatait.
Jelenleg bekéri a júzer: nevét, UID-ját,GIU-jét, jelszavát, majd megcsinál mindent. A progi forrása:
ldap-ueradd.sh
...
#!/bin/bash
USERNAME=''
USERID=''
GROUPID=''
PASSWORD=''
MKNTPWD='/usr/bin/mkntpwd'
GENSHA1='/usr/bin/gensha1.pl'
LDAP_BIND_DN='cn=manager,dc=domain,dc=local'
LDAP_BIND_SECRET='jelszó'
LDAP_SUFIX='dc=domain,dc=local'
LDAP_USERS='ou=People'
RETVAL=0
# Check required programs
[ ! -x $MKNTPWD ] && exit 1
#[ ! -x $GENSHA1 ] && exit 1
echo -n "Felhasznalonev: "
read USERNAME
echo -n "Felhasznalo ID: "
read USERID
echo -n "Csoport ID: "
read GROUPID
echo -n "Jelszo: "
read PASSWORD
LMPASSWD=`$MKNTPWD -L $PASSWORD`
NTPASSWD=`$MKNTPWD -N $PASSWORD`
LOCALSID=`net getlocalsid | awk -F ': ' '{ print $2 }'` USERPASSWD=`slappasswd -s $PASSWORD` echo -e "dn: uid=$USERNAME,$LDAP_USERS,$LDAP_SUFIX\nobjectClass:
top\nobjectClass: account\nobjectClass: posixAccount\nobjectClass:
sambaSamAccount\nuid: $USERNAME\nuserPassword: $USERPASSWD\nloginShell:
/bin/bash\nsambaSID: $LOCALSID\nsambaLMPassword: $LMPASSWD\nsambaNTPassword:
$NTPASSWD\ncn: $USERNAME\nuidNumber: $USERID\ngidNumber:
$GROUPID\nhomeDirectory: /home/$USERNAME" | \ ldapadd -x -D $LDAP_BIND_DN -w $LDAP_BIND_SECRET RETVAL=$?
if [ $RETVAL -eq 0 ] ; then
echo 'Success...'
else
echo 'Failure'
exit 1
fi
...
Tudna segíteni valaki?
Előre is köszi!
--
Sulek Szabolcs
Open WebMail Project (http://openwebmail.org) Debian Project (http://www.debian.org)
_______________________________________________
Techinfo mailing list
Techinfo at lista.sulinet.hu
http://lista.sulinet.hu/mailman/listinfo/techinfo
Illemtan: http://www.1let.hu/illemtan.html Ügyfélszolgálat FAQ: http://www.sulinet.hu/tart/cikk/sc/0/19789/1
További információk a(z) Techinfo levelezőlistáról