Darf ich die Dateien / etc / group und / etc / passwd sortieren?

33

My /etc/groupist gewachsen, indem neue Benutzer hinzugefügt und Programme installiert wurden, die ihre eigenen Benutzer und / oder Gruppen hinzugefügt haben. Gleiches gilt für /etc/passwd. Die Bearbeitung ist aufgrund der fehlenden Struktur etwas umständlich geworden.

Darf ich diese Dateien sortieren (z. B. nach numerischer ID oder alphabetisch nach Namen), ohne dass dies negative Auswirkungen auf das System und / oder die Paketmanager hat?

Ich würde vermuten, dass das keine Rolle spielt, aber nur um sicherzugehen, dass ich eine 2. Meinung einholen möchte. Muss rootvielleicht die 1. Zeile sein oder innerhalb der ersten 1k Zeilen oder so?

Gleiches gilt für /etc/*shadow.

Ned64
quelle
7
"Die Bearbeitung ist jetzt aufgrund der fehlenden Struktur etwas umständlich geworden." Warum bearbeiten Sie diese Dateien von Hand?
Kevin
Wie hilft das Sortieren der Datei beim Bearbeiten? Liegt es daran, dass Sie zusammengehörige Konten gruppieren und dann ähnliche Änderungen in einem Bereich von Zeilen vornehmen möchten? Aber wird das zugehörige Konto benachbart sein, wenn Sie nach UID oder Name sortieren?
Barmar
@Barmar Es hat hauptsächlich geholfen, weil Benutzerkonten nach Bereichen gruppiert und von Systemkonten getrennt sind (beim Sortieren nach UID). Daher ist es beispielsweise einfacher, die richtige Linie zu finden, die beim Bearbeiten mit überprüft oder geändert werden soll vi.
Ned64

Antworten:

50

Sie sollten sein OK dies zu tun : in der Tat, nach dem Artikel und dem Lesen der Dokumentation, können Sie sortieren /etc/passwdund /etc/groupvon UID / GID mit pwck -sund grpck -ssind.

ErikF
quelle
3
@Menasheh Die Farben dieser Site heben sie nicht so stark hervor wie auf anderen Sites, aber "OK" in dieser Antwort ist ein Hyperlink.
HDV
2
OK, in Ordnung, aber ... Gibt es im Allgemeinen gültige Gründe, um / etc / passwd und ähnliche Dateien manuell zu bearbeiten? Wird es nicht als besser angesehen, über die Tools darauf zuzugreifen, mit denen sie erstellt und geändert werden können?
Mickeyf_supports_Monica
@mickeyf Ich habe gesehen, wie Leute manuell /etc/passwdÄnderungen vorgenommen haben, wenn sie Batch-Änderungen vorgenommen haben, z. B. das GECOS-Feld für alle Benutzer aufgrund von Umzügen / Umstrukturierungen (globale Raum- oder Telefonnummernänderungen usw.) Gründe, die von Zeit zu Zeit auftauchen.
ErikF
44

Obwohl ErikF richtig ist, dass dies im Allgemeinen in Ordnung sein sollte, möchte ich auf ein mögliches Problem hinweisen:

Sie können derselben UID unterschiedliche Benutzernamen zuordnen. Wenn Sie dies nutzen, wählen Tools, die eine UID wieder einem Benutzernamen zuordnen, im Allgemeinen den ersten Benutzernamen aus, den sie für diese UID in finden /etc/passwd. Das Sortieren kann dazu führen, dass ein anderer Benutzername zuerst angezeigt wird. Für Anzeigezwecke (z. B. ls -lAusgabe) sollte jeder Benutzername funktionieren, aber es ist möglich, dass Sie ein Programm so konfiguriert haben, dass Anforderungen von Benutzername A akzeptiert werden, wobei diese Anforderungen abgelehnt werden, wenn sie von Benutzername B stammen, auch wenn A und B sind der gleiche Benutzer.

hvd
quelle
Vielen Dank, ich weiß, dass Sie einen Benutzer mit tcsh und uid 0 in Solaris vor einigen Jahrzehnten hatten. Ein Linux-System erstellt diese Situation jedoch nicht von selbst. Sie müssten einen solchen Benutzer manuell erstellen, um Probleme mit dieser Situation zu haben.
Ned64,
2

Root in der ersten Zeile zu haben, war lange Zeit de facto "Standard" und ist sehr praktisch, wenn Sie jemals die Shell reparieren oder das Passwort löschen müssen, wenn Sie Probleme haben oder Systeme wiederherstellen.

Ebenso bevorzuge ich Daemons / Utils-Benutzer in der Mitte und Standardbenutzer am Ende von beiden passwdund shadow.

hvd Die Antwort ist auch sehr gut, wenn es darum geht, die Benutzerreihenfolge zu stören, insbesondere bei Systemen mit vielen Benutzern, die von Hand gewartet werden.

Wenn Sie es schaffen, die Dateien zu sortieren, zum Beispiel nur für Standardbenutzer, ist es sinnvoller, als die Reihenfolge aller Benutzer zu ändern, imo.

Rui F Ribeiro
quelle
1
Wenn Sie numerisch nach UID sortieren, sollten Sie Ihre bevorzugte Reihenfolge erhalten. Root ist immer 0, und Daemons haben üblicherweise
UIDs
@Barmar Wenn Sie nach UID und nicht nach Namen sortieren, vielen Dank, dass Sie sich daran erinnern.
Rui F Ribeiro
0

Hier ist ein bisschen etwas haariger Bash-Code, um die shadow / gshadow-Dateien sicher (mit vipw -s/ vigr -s) und direkt von der Kommandozeile aus zu sortieren :

EDITOR="/usr/bin/vi -c \"1,\\\$!awk 'BEGIN {FS = \\\":\\\"} FNR==NR {x2[\\\$1] = \\\$0; next} \\\$1 in x2 {print x2[\\\$1]}' - /etc/passwd\" -c \"wq! \" >/dev/null 2>&1" vipw -s

EDITOR="/usr/bin/vi -c \"1,\\\$!awk 'BEGIN {FS = \\\":\\\"} FNR==NR {x2[\\\$1] = \\\$0; next} \\\$1 in x2 {print x2[\\\$1]}' - /etc/group\" -c \"wq! \" >/dev/null 2>&1" vigr -s

HINWEIS:

  1. vi -cÜbergibt den Befehl an den vim-Editor, der von der Variablen als Editor für vipw/ zugewiesen wirdvigrEDITOR
  2. Der awk Code sortiert shadownach passwd(und gshadownach group)
  3. Die Backslashes sind nur die mehreren erforderlichen Escape-Ebenen, die den Angebotsebenen entsprechen.
  4. Der zweite Befehl (-c "wq!") Erzwingt das Schreiben und Schließen der sortierten Datei. Die Kraft ist notwendig, da shadow / gshadow oft im Modus 000 sind (dh nicht beschreibbar). Beachten Sie das Leerzeichen zwischen '!' und '\' ist erforderlich, um die Interpretation durch die Shell als '! \' zu verhindern, die auf ein Bash-Ereignis verweist.
puterboy
quelle