Loopa ändringar på Sambaanvändare

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
Majo
Inlägg: 48
Blev medlem: 26 feb 2008, 19:41
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

Loopa ändringar på Sambaanvändare

Inlägg 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!
Majo
Inlägg: 48
Blev medlem: 26 feb 2008, 19:41
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

Re: Loopa ändringar på Sambaanvändare

Inlägg 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?
Skriv svar

Återgå till "Terminalforum"