Wie füge ich Kommentare in meine / etc / shadow-Datei ein?

10

Ich führe einige System-Upgrades durch und mein Paketmanager zeigt Änderungen zwischen dem Upstream / etc / shadow und meinem an.

Ich möchte einige Kommentare in die Datei einfügen, damit dies das nächste Mal passiert. Wie würde ich es schaffen, Kommentare in die Datei / etc / shadow einzufügen, ohne die Dinge zu beschädigen?

Ich denke, Standard "#" würde es wahrscheinlich tun, aber wenn ich das falsch verstehe, wird der Neustart nicht so angenehm sein.

DarkSheep
quelle
Verwenden Sie etckeeper und zeichnen Sie Ihre Kommentare in Commit-Nachrichten auf.
Gilles 'SO - hör auf böse zu sein'

Antworten:

14

Auf Linux-Systemen, die GNU libc verwenden, werden Zeilen, die mit beginnen, #in ignoriert /etc/shadow. Das Parsen wird von durchgeführt __fgetspent_r(), und sein Quellcode behandelt (und dokumentiert) dieses Verhalten explizit.

So auf der großen Mehrheit der Linux - Systeme können Sie Linien Kommentar in /etc/shadowmit , #ohne Probleme zu verursachen.

Leider werden Kommentare gelöscht, wenn sie /etc/shadowaktualisiert werden, z. B. von passwd; Das Speichern von Kommentaren ist daher nicht wirklich sicher (aus der Sicht der Kommentare).

Das heißt , Sie müssen woanders finden Ihre Kommentare zu speichern: zwei gute Vorschläge sind DR01 ‚s Idee der Verwendung /etc/shadow.README, oder besser noch GillesIdee der Verwendung von Commit - Nachrichten mit etckeeper .

Stephen Kitt
quelle
Fast jeder ungültige Eintrag scheint verloren zu gehen passwd. Ich habe versucht, einen gefälschten oder einen gültigen Benutzereintrag zu verwenden und dem endgültigen Eintrag Zeichen hinzuzufügen, aber alles ohne Erfolg.
Otheus
7

Jede Zeile von /etc/shadowwird als Benutzerdatensatz betrachtet. Wie geschrieben von Stephen Kitt, der den Parser Quellcode überprüft, können Sie Zeilen mit Start setzen #als Kommentare in der Datei oder auch leere Zeilen und sie werden ignoriert.

Ich habe jedoch noch nie eine /etc/shadowDatei mit Kommentaren dazu gesehen. Es scheint, dass dies keine gängige Praxis ist, und das aus einem sehr guten Grund: Von der manuellen Bearbeitung wird dringend abgeraten . Aus diesem Grund würde ich eher vorschlagen, dass Sie /etc/shadow.READMEstattdessen eine Datei erstellen , um Ihre Kommentare zu speichern. Denken Sie an chmod 000die Datei, um zu vermeiden, dass Nicht-Root-Benutzer daran herumschnüffeln.

dr01
quelle
Warum also 000? Im Besitz von root:rootund dann ug=r,o=nicht genug?
0xC0000022L
000 sind die Berechtigungen von /etc/shadow(zumindest bei Red Hat habe ich nicht in anderen Distributionen gesucht) und stellen sicher, dass nur root Zugriff auf die Datei hat. 440, wie Sie vorschlagen, machen Sie die Datei für einen normalen Benutzer lesbar, falls er versehentlich der Stammgruppe beitritt. Auf einer ordnungsgemäß verwalteten Maschine und für alle praktischen Zwecke sind sie gleich viel wert. Ich denke, dass 000 besser die Bedeutung von "sicherheitskritische Datei - Hände weg" vermittelt, aber das ist nur meine Meinung.
dr01
@ dr01: Ich bin mir nicht sicher, wie ein normaler Benutzer der Stammgruppe beitreten würde, ohne dass ein Superuser dies tut. Und wenn ein Superuser einen solchen Fehler macht, sind alle Wetten ungültig. Es besteht zum Beispiel eine gute Chance, dass die Person dann bereits ein Sudoer ist und trotzdem auf die Datei zugreifen kann. Ich halte es für Sicherheit durch Dunkelheit, aber YMMV.
0xC0000022L
Genau das habe ich mit "reguläre Benutzer verbindet versehentlich die Stammgruppe" gemeint. Mein Fall ist, dass ein Superuser ihn (obwohl die Chancen gering sind) versehentlich in die Stammgruppe aufnehmen könnte. Mit einer Berechtigung von 000 kann nur root auf die Datei zugreifen. Ich erkenne, dass dies wahrscheinlich ein Randfall ist, aber ich halte dies auch für viel sauberer, da die Kommentardatei letztendlich die gleichen Berechtigungen wie hat /etc/shadow.
dr01
3

Natürlich haben Sie Änderungen an Ihrem /etc/shadow. Sie möchten nicht, dass die Kontoinformationen /etc/shadowauf Ihrem Server - gehashte Kennwörter, Kontoablauf usw. - eine Byte-für-Byte-Kopie des Upstreams sind /etc/shadow.

Und ich hoffe, Sie überschreiben Ihren Strom nicht /etc/shadowmit dem, was Sie von Ihrer vorgelagerten Datenquelle erhalten.

Andrew Henle
quelle