Warum werden Sudoer nicht durch UID definiert?

Warum werden Sudoer nicht durch UID definiert?

Anmeldeinformationen sind in Linux an UIDs gebunden. Wenn ich jedoch die Sudoers-Datei öffne, werden die Sudoers nach Benutzername und nicht nach UID definiert.

Warum werden Benutzernamen statt UIDs verwendet?
Ändert sich die sudoers-Datei beim usermod -lAusführen automatisch?

Ausschnitt:

    # User privilege specification
    root    ALL=(ALL:ALL) ALL

Antwort1

Nach einigen Handbüchern [1,2] Ich kann Ihnen folgende Antworten geben:

  1. Es ist möglich, die Benutzer mit der UID anzugeben.

    Von demsudoers-Wiki von Ubuntuwir können lesen:

    Sie können Kommentare einfügen, indem Sie ihnen ein # voranstellen. Dies wird jedoch auch verwendet, um in bestimmten Teilen der Datei eine UID anzugeben, wenn darauf eine Zahl folgt.

    Später imAbschnitt „Runas-Aliase“sei ein Beispiel berichtet:

    # UID 0 is normally used for root  
    # Note the hash (#) on the following line indicates a uid, not a comment.  
    Runas_Alias ROOT = #0
    
  2. Wenn Sie dies tun, usermod -lsollten Sie die Änderung einfach nicht in den Sudoers propagieren.
    Tatsächlich aus demManpage für Usermod, informativer als dieBSD einskönnen wir lesen

    -l, --login NEUER_LOGIN
    Der Name des Benutzers wird von LOGIN in NEW_LOGIN geändert.Sonst wird nichts geändert.
    Insbesondere sollte der Name des Home-Verzeichnisses des Benutzers wahrscheinlich manuell geändert werden, um den neuen Anmeldenamen widerzuspiegeln.

    Es scheint immer noch eine manuelle Pflege der Änderung im Sudoers zu erfordern, wenn Sie nur -lParameter angeben. Wahrscheinlich müssen Sie den alten Benutzernamen löschen undFügen Sie den Benutzer zur Sudo-Gruppe hinzumit

    sudo usermod -a -G sudo hduser
    

    Tatsächlich geschah es beidieser Benutzerim Jahr 2008 mit einem Debian-Sid-System:

    Ich habe XXX als Benutzernamen verwendet, um mich bei meinem Sid-Laptop anzumelden, und XXX befindet sich in der Sudoers-Datei. Heute habe ich es in YYY geändert mit

    sudo usermod -l YYY XXX

    Ich habe nichts anderes getan.

    Jetzt kann ich mich mit YYY anmelden, konnte mich jedoch mit su nicht mit dem Root-Passwort als Root anmelden.Außerdem ist 'YYY' nicht in der sudoers-Datei, daher kann ich /etc/sudoers jetzt nicht bearbeiten, um YYY einzuschließen.

EndlichWarum, eine definitive Antwort erhalten Sie wahrscheinlich nur vonTodd Millerder den letzten (erfolgreichen) Fork von sudo im Jahr 1991 gemacht hat, oder vielleicht von Bob Coggeshall oder Cliff Spencer, wenn es aus dem Jahr 1980 stammt [7].

Verweise

verwandte Informationen