User Migration problem egrep ? uid <= 1000 filtern

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
dakeeper
Beiträge: 2
Registriert: 11.09.2019 12:13:29

User Migration problem egrep ? uid <= 1000 filtern

Beitrag von dakeeper » 11.09.2019 12:20:53

Hallo,
ich muss aus den passwd, group und shadow alle user mit einer uid unter 1000 herausfiltern.
bei der group und passwd ist das kein problem da dort ja die uid`s drinnen stehen, bei shadow habe ich das problem das er z.b. einen user "Marksmann" nicht herausfiltert weil anscheinend "man" in dem wort enthalten ist.

Ich versuche das ganze mit folgendem code:

Code: Alles auswählen

awk -v LIMIT=$UGIDLIMIT -F: '($3>=0) && ($3<=1000) {print $1}' /etc/passwd | tee - |egrep -f - /etc/shadow
Kennt vielleicht jemand eine elegantere möglichkeit, so dass mit die user uid`s über 1000 nicht mit reinrutschen?

Wäre wirklich sehr dankbar.

Gruß,
Holger

Benutzeravatar
Meillo
Moderator
Beiträge: 5380
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: User Migration problem egrep ? uid <= 1000 filtern

Beitrag von Meillo » 11.09.2019 13:36:16

/etc/shadow entspricht doch /etc/passwd, bloss dass halt die Passwort-Hashes drin sind. Es reicht also nur in /etc/passwd zu suchen, wenn du die User finden willst. Der awk-Befehl alleine reicht dazu aus. Dann bekommst du auch eine so irritierenden Effekte, wie dass der User ``man'' aus der passwd als Pattern beim egrep auch auf ``Marksman'' in shadow matcht.

Btw: Suchst du kleiner 1000 oder kleiner-gleich 1000? ;-)

Das liefert dir alle User die eine uid < 1000 haben (d.h. normalerweise die Systemaccounts unter Debian):

Code: Alles auswählen

awk -F: '$3<1000 {print $1}' /etc/passwd
Mehr sollte nicht noetig sein.
Use ed(1) once in a while!

dakeeper
Beiträge: 2
Registriert: 11.09.2019 12:13:29

Re: User Migration problem egrep ? uid <= 1000 filtern

Beitrag von dakeeper » 11.09.2019 13:49:31

Hallo und danke für deine antwort.

Ich brauche z.b. aus System B nur die Systemuser (uid<1000) in entsprechende passwd, group, shadow umgeleitet.
Für passwd und groups geht das, aber bei shadow hab ich oben beschriebenes problem.

Dann möchte ich die User / Passwörter / gruppen aus System A (uid >1000) in die eben erstellten datein schreiben (cat) und auf System B erstzten. Quasi System A ist das Master System und verteilt die User an die anderen Systeme.

hast du dazu noch nen tipp?

Benutzeravatar
Meillo
Moderator
Beiträge: 5380
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: User Migration problem egrep ? uid <= 1000 filtern

Beitrag von Meillo » 11.09.2019 15:16:04

dakeeper hat geschrieben: ↑ zum Beitrag ↑
11.09.2019 13:49:31
Ich brauche z.b. aus System B nur die Systemuser (uid<1000) in entsprechende passwd, group, shadow umgeleitet.
Für passwd und groups geht das, aber bei shadow hab ich oben beschriebenes problem.
Du willst also die Systemuser zentral pflegen und automatisiert auf die anderen Systeme verteilen -- korrekt?
Dann möchte ich die User / Passwörter / gruppen aus System A (uid >1000) in die eben erstellten datein schreiben (cat) und auf System B erstzten. Quasi System A ist das Master System und verteilt die User an die anderen Systeme.
Moment ... willst du die Systemuser (uid<1000) synchronieren oder die normalen User (uid>=1000)?

Bitte beschreibe nochmal genauer was genau die eigentlich erreichen willst. Vielleicht gibt es eine bessere Loesung als nur deinen Befehl anzupassen.

Wenn du sie nur in die drei Dateien eintraegst, reicht das nocht nicht. Du musst ggf. fuer sie auch ihre Homedirectories anlegen.

Ein zentrales Login-Management waere vermutlich der ``korrekte'' Ansatz fuer dein Problem.
Use ed(1) once in a while!

Antworten