Warum sollten Sie die Datei / etc / shadow NIEMALS direkt bearbeiten?

10

In einer anderen Antwort hier auf UNIX & Linux Stack Exchange schrieb Michael D Parker Antwort auf jemanden, der sagte, dies sei "sicher":

Normalerweise sollten Sie die Datei / etc / shadow NIEMALS direkt bearbeiten.

So:

Warum sollten Sie die Datei niemals/etc/shadow direkt bearbeiten ?

Claude Cameron
quelle
weil Ihre Passwörter verschlüsselt sind.
Milind Dumbare
7
Weil du es brechen wirst. Vielleicht nicht heute, vielleicht nicht morgen, aber bald
Strg-Alt-Delor
1
Aktualisieren Sie Ihre Frage (indem Sie sie bearbeiten) mit einem Link, warum dies Ihrer Meinung nach der Fall ist. Ich habe die Bearbeitung /etc/shadowohne Probleme mehr als 20 Jahren, je . Und bitte seien Sie so höflich, die zweiminütige Hilfe → Tour zu lesen , insbesondere die "keine Ablenkungen", "kein Plaudern". Dies ist das erste Mal, dass ich in einer Frage mehr nicht relevanten Chit-Chat durchlesen musste als frage-relevante "Details".
Anthon
"normalerweise solltest du nie" ist nicht dasselbe wie "nie".
Roaima
2
@ Captcha Unsinn. Es gibt gute Gründe, das nicht zu tun. Nur weil Ihnen nichts einfällt, sind Sie nicht berechtigt, andere Menschen als unwissend zu bezeichnen. Bitte sei nett .
Gilles 'SO - hör auf böse zu sein'

Antworten:

15

Es gibt mehrere Gründe , nicht zu bearbeiten /etc/passwd, /etc/shadow, /etc/group, /etc/gshadowoder /etc/sudoersdirekt, sondern verwenden vipw, vigroder visudo:

  • Wenn Sie einen Syntaxfehler machen, können Sie sich möglicherweise nicht mehr anmelden oder root werden. Die Verwendung der viXXX-Tools verringert dieses Risiko, da das Tool vor dem Ändern der Datei eine Überprüfung der Integrität durchführt.
  • Wenn die Datei gleichzeitig bearbeitet wird, überschreibt derjenige, der zuletzt speichert, die Änderungen, die durch vorherige Änderungen vorgenommen wurden. Dies umfasst sowohl einen Administrator, der die Datei bearbeitet, als auch die Datei, die geändert wird, weil ein Benutzer oder angerufen passwdhatchshchfn um etwas an seinem Konto zu ändern. Wenn Sie das entsprechende Tool verwenden, werden gleichzeitige Änderungen verhindert. Dies betrifft hauptsächlich Systeme mit mehreren Benutzern, weniger, wenn Sie der einzige Benutzer sind.
  • vipwAktualisiert auf einigen Systemen (meistens oder nur * BSD) mehrere Dateien (z . B. /etc/passwdund /etc/master.passwd). Dies gilt nicht für Linux.
  • vipwerstellt automatisch eine Sicherungskopie ( passwd-, shadow-, ...), was nützlich ist , wenn Sie feststellen , dass Sie versehentlich eine Zeile gelöscht. Es ist nur nützlich, wenn Sie es vor der nächsten Bearbeitung bemerken, sodass es die Versionskontrolle und Backups nicht ersetzt. Es kann jedoch sehr hilfreich sein, wenn Sie Ihren Fehler früh genug erkennen. visudomacht das nicht

Sie können die Datei direkt bearbeiten. Sie gehen nur ein zusätzliches Risiko ohne wirklichen Vorteil ein.

Gilles 'SO - hör auf böse zu sein'
quelle
Punkt 2 ist ein Problem in jedem System, in dem Benutzer ihre eigenen Passwörter, Shells und so weiter ändern können. Mehrere Administratoren sind keine Voraussetzung. ☺
JdeBP
3
Das Hauptproblem bei den BSDs ist vielmehr, dass /etc/shadowes nicht existiert und /etc/passwddie falsche Datei zum Bearbeiten ist, da es sich um eine generierte Datei handelt, nicht um die Quelldatei. ☺
JdeBP
@ JdeBP Außer es ist überhaupt kein Problem und die BSDs speichern in master.passwd
Rob
6

Grundsätzlich gibt es zwei Möglichkeiten, dies zu betrachten:

  1. Bearbeiten Sie niemals bestimmte Dateien ohne die vorgeschriebenen Tools, da Sie wahrscheinlich nicht wissen, was Sie tun, und das ist in Ordnung, da diese Tools es besser wissen und immer verfügbar sind.

  2. Realistischer können Sie es jetzt genauso gut brechen, während Sie darüber nachdenken, damit Sie mit einer Sicherungskopie vorausplanen und die Unterschiede nachträglich vergleichen können, da loginsich wahrscheinlich Grundkenntnisse über die Vor- und Nachteile des grundlegenden Anfangsprozesses Ihres Systems lohnen Wenn Sie es später auf eine andere Weise brechen und diese Tools Ihnen nicht helfen.

Ich denke, Sie können wahrscheinlich sagen, welche ich empfehle. Ich sage, wenn Sie ein Thema auch nur für einen Moment interessiert, können Sie diese Neugier genauso gut nutzen und eine neue Fähigkeit erwerben, während Sie dabei sind. Besonders eine wie diese - die shadowDatei hat ein ziemlich einfaches Format und das Wenige, was ich darüber weiß, habe ich gelernt, nachdem ich es versehentlich kaputt gemacht habe - und es war nicht das Ergebnis einer Bearbeitung, die ich an dieser Datei vorgenommen habe.

Mein Problem trat eher auf, nachdem ein anderer Fehler mit einer Paketverwaltungsdatenbank dazu führte, dass der Paketmanager sie überschrieb, ohne ein Backup zu speichern, und alle Benutzer auf dem System kaputt gemacht wurden . Weitere unwissende Pfuschversuche bei Reparaturen verteilten den Schaden nur auf andere verwandte Dateien, und es dauerte nicht lange, bis ich die meisten /etcTextdateien aus einer (weniger aktuellen als erhofften) wiederherstellen musste. Backup .

Nachdem ich dies getan und überprüft hatte, ob ich es in einem funktionsfähigen Zustand hatte, beschloss ich, alles absichtlich und akribisch noch einmal zu tun. Und noch einmal. Das war alles vor ein paar Monaten, aber heute bin ich zuversichtlich, dass ich die Ursache eines loginProblems mit einem erneuten Durchlauf einer einzelnen Protokolldatei auf meinem System diagnostizieren und mit einem beliebigen Basiseditor beheben kann (und vielleicht einen Blick darauf werfen kann) oder zwei at man 5 problem_file) stellten nur einen grundlegenden Zugriff auf die betroffenen Root-Fs bereit. Es wurde nicht billig erworben - es hat fast einen Tag gedauert - und die zugehörigen Konfigurationsdateien sind über das gesamte Verzeichnis verteilt (und sogar einige - wie Linux-PAMs /var/run/no_login- auf anderen Mounts) - aber es hat sich gelohnt. Und es könnte hat mit einer wenig Umsicht billiger gewesen.

Die Moral dieser Geschichte ist , dass es wahrscheinlich ist nicht eine gute Sache , dass das Format von unternehmenskritischen configs wie shadow, passwd, groups, shellssollte uns so undurchsichtig sein , dass wir spezielle Bearbeitungs - Werkzeuge verwenden müssen , die nicht oder nicht unsere Arbeit in einer Weise zu korrigieren und aus Gründen verstehen wir nicht nur eine einfache Änderung zu bewirken. Zumindest, denke ich, lohnt es sich, genau zu verstehen, was sie anders machen würden als wir.

Wahrscheinlich ist eine gute Sache, aber, dass , wenn wir vertraut genug mit dem Bearbeiten von Dateien gesagt , dass wir das Risiko von in sie und danach Speichern ihnen typographische oder einfache syntaktische Fehler , dass es Werkzeuge zur Verfügung laufen , die können double-check unsere Arbeit auf eine Art und Weise und aus Gründen, die wir bereits verstehen, bevor wir unsere Blase-Änderungen anwenden.

mikeserv
quelle
3

Kontrapunkt - Wenn Sie eine Reihe von Benutzeranmeldungen von einem Server auf einen anderen kopieren müssen, ohne die aktuellen Kennwörter zu kennen oder ihnen neue zuzuweisen, müssen Sie / etc / shadow direkt bearbeiten, um das Feld für das Hash-Kennwort einzufügen. Mit vipw können Sie dieses Feld nicht berühren, es ist nur "*"

Update: oder verwenden Sie in diesem Fall chpasswd -e "Hash-Passwort", dies kann jedoch nur direkt auf dem Computer erfolgen. Wenn Sie mit einer Reihe von Dateien gearbeitet haben, die noch nicht auf einem Computer bereitgestellt wurden (z. B. Virtual Machine), ist die direkte Bearbeitung möglicherweise Ihre einzige Lösung.

dh es gibt normalerweise ein Werkzeug, um das zu tun, was Sie tun möchten, ohne / etc / shadow direkt zu bearbeiten. Sie müssen nur wissen, was es ist ...

Tomuo
quelle
Oder Sie können einen LDAP-Server einrichten.
Kusalananda
0

Ein weiterer Grund, warum Sie diese Dateien bearbeiten müssen, besteht darin, dass Sie die Dateien in einem Dateisystem-Image bearbeiten, das Sie auf einem anderen System booten, und dieses System nach dem Start debuggen müssen. Zum Beispiel das epheremale MAAS-Dateisystem, das bei einer fehlerhaften Inbetriebnahme oder im Rettungsmodus verwendet wird.

Sag niemals nie ... es sei denn du meinst es ernst.

Bigtexun
quelle