Warum ist Wurzel in Rad und Operator? Kann Root in einer Gruppe jemals einen Unterschied machen?

18

Auf meinem FreeBSD-Rechner ist mir gerade aufgefallen, dass sich die Wurzel in wheel und operator befindet. Ich versuche, mir eine Situation vorzustellen, in der die UID 0 in einer Gruppe Auswirkungen auf ... naja ... alles hat, und mir bleibt nichts anderes übrig. Braucht root überhaupt eine primäre Anmeldegruppe in / etc / passwd? Oder drosselt Login (3) und stirbt, wenn der Benutzer ein leeres Feld für die primäre Gruppe hat?

(Zur Verdeutlichung: Ich verstehe den Zweck der Existenz der "Root" -Gruppe, da Dateien einen Gruppeneigentümer benötigen. Ich verstehe nicht, wie wichtig es ist, dass der Benutzer root / toor / whatever diese Gruppenzugehörigkeit hat.)

Ist das nur eine Kruft von vor Jahrzehnten, oder gibt es einen wirklichen Grund dafür?

Bandrami
quelle

Antworten:

5

Kurz gesagt: nein. Root on wheelund operatorgroup haben nichts geändert.

Sie stellen aber auch zwei andere Dinge in Frage:

  • Die ID der Stammgruppe ist (standardmäßig) auf 0 gesetzt, was einem leeren Wert am nächsten kommt, den Sie erhalten können.

    $ head -4 /etc/passwd
    # $FreeBSD: releng/9.2/etc/master.passwd 243947 2012-12-06 11:52:31Z rwatson $
    #
    root:*:0:0:Charlie &:/root:/bin/csh
    toor:*:0:0:Bourne-again Superuser:/root:
    

    Wie gesagt, jeder Benutzer muss eine Gruppe haben, daher können Sie die Root- Gruppen-ID (oder eine Benutzer-GID) nicht auf einen ungültigen oder leeren Wert setzen. Wenn Sie versuchen, eine Benutzer-GID auf leer zu setzen, werden Sie gewarnt durch pwd_mkdb:

    pwd_mkdb: no gid for user root
    pwd_mkdb: at line #3
    pwd_mkdb: /etc/pw.Rlb2U3: Inappropriate file type or format
    re-edit the password file?
    

    Die Tatsache, dass root definiert ist, bedeutet eher, dass es korrekt benannt wird, anstatt nur eine dumme Zahl. Sie können root gid in eine beliebige sinnlose Zahl ändern (gid nicht innerhalb /etc/group). Ihr Root- Benutzer kann sich weiterhin anmelden suoder was auch immer Root tun kann. Sie werden am Ende so etwas haben:

    $ id
    uid=0(root) gid=10000 groups=10000,5(operator)
    
  • Warum einige Benutzer in der Wheel- Gruppe sind, ist eine völlig andere Geschichte, da FreeBSD , wie OpenBSD oder NetBSD , ein Teil von sein wheelmuss, um su root zu werden .

    Aus der FreeBSD-Dokumentation ( Kapitel 9.4 ):

    Um als root angemeldet zu sein (oder ein anderes Konto mit Superuser-Rechten), müssen Sie Mitglied der Gruppe wheel sein. Wenn diese Funktion nicht vorhanden wäre, könnte jeder mit einem Konto auf einem System, der auch das root -Passwort herausgefunden hat, auf Superuser-Ebene auf das System zugreifen. Bei dieser Funktion ist dies nicht unbedingt der Fall. su (1) verhindert, dass sie versuchen, das Passwort einzugeben, wenn sie sich nicht im Lenkrad befinden .

    Aber Sie haben Recht, das Entfernen des Root- Benutzers vom Rad würde nichts ändern. Dies ist rein formal, so wie der Toor- Benutzer weder Teil des Rades noch der Root ist, der Teil der Operatorgruppe ist.

  • Die Operatorgruppe ist jedoch rein formal, ohne besondere Bedeutung für sich.

Hier ist auch das, was Richard Stallman denkt über die Rad - Gruppe (von Gnu su Handbuch ):

Warum unterstützt GNU "su" die Gruppe "wheel" nicht? ==========

(Dieser Abschnitt ist von Richard Stallman.)

Manchmal versuchen einige der Benutzer, den Rest unter Kontrolle zu halten. Beispielsweise beschlossen 1984 einige Benutzer des MIT AI-Labors, die Stromversorgung zu nutzen, indem sie das Bedienerkennwort des Twenex-Systems änderten und es vor allen anderen geheim hielten. (Ich konnte diesen Coup vereiteln und den Benutzern die Macht zurückgeben, indem ich den Kernel gepatcht habe, aber ich wusste nicht, wie das unter Unix geht.)

Gelegentlich erzählen die Herrscher es jedoch jemandem. Nach dem üblichen "su" -Mechanismus kann jemand, der das root-Passwort kennt und mit den normalen Benutzern sympathisiert, den Rest mitteilen. Die Funktion "Radgruppe" würde dies unmöglich machen und somit die Macht der Herrscher festigen.

Ich bin auf der Seite der Massen, nicht der Herrscher. Wenn Sie es gewohnt sind, die Chefs und Sysadmins bei allem, was sie tun, zu unterstützen, finden Sie diese Idee vielleicht zuerst seltsam.

Ouki
quelle
1

login (3) und andere erwarten eine primäre Gruppe. Sie benötigen es, damit sie gültige Felder in den utmp / wtmp-Dateien festlegen können. Und selbst wenn dies nicht der Fall wäre (geändertes Dateiformat), stoßen Sie auf ein grundlegenderes Problem, wenn Login (1) oder sshd (8) oder andere Programme versuchen, die Benutzersitzung einzurichten - unabhängig von utmp / wtmp, müssen sie beide füllen UID- und GID-Kernel-Prozesseigenschaften (bei Dateien, die vom angemeldeten Benutzer erstellt wurden, müssen UID und GID ausgefüllt sein, wie Sie bemerken).

Was das Problem betrifft, warum all-powerful-root mehr als nur eine primäre Gruppe benötigt, so werden keine Berechtigungsprüfungen durchgeführt (da sie für UID 0 übersprungen werden), sondern einige andere Verwendungszwecke.

Die Gruppe "wheel" wird insbesondere für mehrere zusätzliche Authentifizierungsprüfungen verwendet, wie zum Beispiel pam_wheel

Andere Gruppen wie „Operator“ könnten für Sicherheitsmerkmale (zum Beispiel verwendet werden, wenn ein Prozeß von root ausführen könnte setuid (2) zu unprivilegierten USER (wie „niemand“), während immer noch seine Gruppenmitgliedschaften beibehalten (wie „Operator“). Dies würde es einem solchen Prozess ermöglichen, weiterhin auf Dateien zuzugreifen, die dieser Gruppe gehören, und gleichzeitig die Sicherheitsprobleme bei der Ausführung mit vollem UID 0-Zugriff erheblich verringern.

Ich bin mir nicht sicher, ob es Programme gibt, die diese Funktion in Ihrem System verwenden (oder ob FreeBSD CURRENT die Standardeinstellung ist).

Matija Nalis
quelle
0

Dies kann einen Unterschied machen - sobald ein Programm die Gruppenzugehörigkeit überprüft und sich je nach Ergebnis unterschiedlich verhält. Natürlich gibt es keinen Unterschied zu den Berechtigungen, die der Root-Benutzer erzwingen kann .

Rackandboneman
quelle
0

Ist es nicht so, dass, wenn niemand Mitglied der Gruppe wheel ist, wheel einfach ignoriert wird und alle Benutzer su ausführen können ... und möglicherweise das Passwort erraten können. Wenn Sie mindestens eine Benutzer-ID für ein Mitglied von group wheel haben (dh Benutzer-ID root), werden die Steuerelemente für wheel überprüft und nur andere Mitglieder von group wheel können versuchen, su auszuführen.

Rufwoof
quelle