#!/bin/sh # # für die Mitglieder einer bestimmten AFS-Gruppe sind die AFS-bezogenen # passwd-Einträge in entsprechende passwd-Zeilen für lokale Accounts zu # konvertieren # # 17.7.2006 # Das vorliegende File ist ein Shell-Skript mit der Endung .awk, so dass der # Editor Vim automatisch das Syntax Highlighting für AWK einschaltet. # Hauptbestandteil des Shell-Skriptes ist ein AWK-Programm, das zur Ausführung # an AWK übergeben wird. # Beispiel für passwd-Eintrag eines AFS-Nutzers: # hot:USE KERBEROS:4324:102:Holger Trapp,urz,1379:/afs/tu-chemnitz.de/home/urz/h/hot:/bin/tcsh # # zugehöriger passwd-Eintrag für einen lokalen Nutzer: # hot:x:4324:500:Holger Trapp,urz,1379:/home/hot:/bin/bash # Variable "nkz" enthält die Liste aller Nutzer der betreffenden AFS-Gruppe awk -v nkz="$(pts mem urz:ub_mitarbeiter | sed 1d)" ' BEGIN { # NKZ-Liste aufsplitten anz = split(nkz, NKZ) # assoziates Feld "EXISTS" füllen, das die Nutzerkennzeichen als Keys # verwendet for (i = 1; i <= anz; i++) { EXISTS[NKZ[i]] = "" } # Trenner auf Doppelpunkt setzen (für /etc/passwd) FS = ":" } $1 in EXISTS { # eins der gesuchten NKZ wurde gefunden --> passwd-Eintrag konvertieren printf("%s:x:%s:%s:%s:/home/%s:%s\n", $1, $3, $4, $5, $1, $7) } ' /etc/passwd