Sida 1 av 1

Loopa ändringar på Sambaanvändare

Postat: 19 feb 2009, 10:03
av Majo
Jag jobbar på att skapa en rad olika administrations- och underhållsscript för en Sambaserver. Men jag går bet på att hämta ut uppgifter ur användardatabasen och använda datan i loopar. Här är ett exempel på vad jag vill göra:

Kod: Markera allt

listan=pdbedit -L -v   //Lista alla sambaanvändare med all info
until [listan är slut /eof?];  //Loopa igenom filen till slutet
do
aktuell_anv=användarnamnet på raden   //Få ut användarnamnet
grupp= värde för standardgrupp
if [$grupp -eq xx];  //Kolla om standardgruppen är xx
usermod -g yy aktuell_anv;   //Och i så fall ändra standardgrupp till yy
fi
done
Jag vill alltså loopa igenom hela användardatabasen, extrahera användarnamn, kolla om standardgrupp är xx och i så fall ändra den till yy. Hur fasiken gör man detta? Tacksam för all hjälp!

Re: Loopa ändringar på Sambaanvändare

Postat: 19 feb 2009, 12:43
av Majo
Jag hittade själv fram till en lösning som fungerar, men den kanske är den enklaste/snyggaste:

Kod: Markera allt

#!/bin/bash
#
GAMLAGRUPPEN=elever #Namnet på den gamla primärgruppen, tex elever
NYTT_GRUPPID=100  #GID för den nya primärgruppen, tex 100
members -p ${GAMLAGRUPPEN} >> temp_bytgrupp.txt
tr ' ' '\n' < temp_bytgrupp.txt >> bytgrupp.txt
theusers=bytgrupp.txt
cat ${theusers} | \
while
read theuser; do
usermod -g ${NYTT_GRUPPID} ${theuser}
echo $theuser har nu grupp-id ${NYTT_GRUPPID} som primär grupp 
done
rm temp_bytgrupp.txt
rm bytgrupp.txt
Kanske någon kan hjälpa mig att hitta en bättre lösning eller att snygga till denna?