Frage 102-152

Welches der folgenden Kommandos sollten Sie verwenden, um nach Benutzerkonten zu suchen, die kein Kennwort haben?

  1. grep '^[^:]*::' /etc/passwd /etc/shadow

  2. sed '/^[^:]*::/s/::/:x:/' /etc/passwd

  3. cut -d: -f2 /etc/passwd /etc/shadow | test -z && echo $PASSWORD

  4. getent --no-pwd passwd

LPI-Lernziel Administrationsaufgaben für Sicherheit durchführen (110.1)

Ein Benutzerkonto hat kein Kennwort, wenn die zweite Spalte von /etc/passwd oder /etc/shadow leer ist. (Wenn die zweite Spalte in /etc/passwd leer ist, ist es unerheblich, was in /etc/shadow steht.)

Antwort 3 verwendet cut, um die zweite Spalte aus den Kennwortdateien zu extrahieren. Dagegen ist zunächst nichts zu sagen, bis darauf: Die Weiterleitung über eine Pipeline an test ist zwecklos, da test sich nicht für seine Standardeingabe interessiert. Ein weiteres kleines Problem wie dass wir so zwar leere Kennwörter finden, aber nicht mehr wissen, zu welchem Konto sie gehören (diese Information haben wir mit cut nicht ausgeschnitten), fällt da schon gar nicht mehr ins Gewicht.

getent passwd (Antwort 4) erlaubt uns die bequeme Abfrage der Benutzerkonten und holt sogar Daten von NIS oder LDAP. Leider hat es aber keine Option --no-pwd, so dass dieser Ansatz auch ausscheidet; ein weiteres Problem ist hier, dass im Kennwort-Feld oft nur x stehen dürfte und dieses Kommando /etc/shadow völlig ignoriert, wo ja auch ein leeres Kennwort angegeben sein könnte.

Bleiben sed (Antwort 2) und grep (Antwort 1). Das sed-Kommando hat wie das getent aus Antwort 4 das Problem, dass /etc/shadow völlig links liegen gelassen wird. Schon deshalb kommt es nicht als Lösung in Frage, und wir können Antwort 1 fast für richtig erklären, ohne es überhaupt näher angeschaut zu haben. Trotzdem betrachten wir kurz den dort angegebenen regulären Ausdruck: Ab dem Zeilenanfang (»^«) kommt ein Nicht-Doppelpunkt (»[^:]«), und das beliebig oft, gefolgt von zwei Doppelpunkten. Das passt genau auf einen Benutzernamen und ein leeres Kennwort, Antwort 1 ist also offenbar richtig.

Diese Frage ist eine typische LPI-Prüfungsfrage. Auf den ersten Blick wirkt sie furchtbar kompliziert und scheint jede Menge obskures Detailwissen vorauszusetzen. In Wirklichkeit ist sie aber recht einfach zu beantworten, wenn Sie sich an ein paar grundlegende Prinzipien halten.

Noch kein Kommentar · Kommentar hinzufügen · RSS

Wichtig

LPI-Logo

Die LPI Academy ist keine offizielle Webseite des LPI!

Sponsor

Linup-Front-Logo

Die LPI Academy wird für die Community unterstützt von der Linup Front GmbH

A Django Site

Diese Seite

Version: 0 (Anselm)
22.8.2009 12:04:22

Benutzer

Nicht angemeldet

Kommentare

RSS