Bester Weg, um NOPASSWD vagabundierenden Benutzer hinzuzufügen?

7

Was ist der bessere Weg, um NOPASSWD mit vagabundierenden Benutzern hinzuzufügen?

Weg 1:

groupadd -r admin
usermod -a -G admin vagrant
cp /etc/sudoers /etc/sudoers.orig
sed -i -e '/Defaults\s\+env_reset/a Defaults\texempt_group=admin' /etc/sudoers
sed -i -e 's/%admin ALL=(ALL) ALL/%admin ALL=NOPASSWD:ALL/g' /etc/sudoers 

Weg 2:

# Set up sudo
echo %vagrant ALL=NOPASSWD:ALL > /etc/sudoers.d/vagrant
chmod 0440 /etc/sudoers.d/vagrant
# Setup sudo to allow no-password sudo for "sudo"
usermod -a -G sudo vagrant

oder vielleicht gibt es noch bessere?

Kratos
quelle

Antworten:

10

Überlegungen zum Bearbeiten von sudoersDateien

Das manuelle Bearbeiten von Dateien, die Sie erstellen oder ändern, ist manchmal dem Bearbeiten mit echo ... >oder sedvorzuziehen, insbesondere sedwenn Sie nicht sehr gut damit umgehen können. Dies liegt daran, dass Sie die Auswirkungen Ihrer Änderungen deutlicher sehen und dass beim sudoersÖffnen der Datei in einem Texteditor für eine Datei, die Sie nicht tatsächlich erstellen (wie in "Weg 1"), andere Inhalte der Datei angezeigt werden könnte relevant sein. Sie sollten Ihre aktuelle Konfiguration im Allgemeinen verstehen, bevor Sie Änderungen daran vornehmen. Zu diesem Zweck ist es manchmal hilfreich, die von Ihnen bearbeitete Konfigurationsdatei zu lesen.

Aber noch wichtiger ist , ein kleiner Fehler in der Bearbeitung /etc/sudoersoder jede Datei in /etc/sudoers.dFabrikate sudoweigern zu arbeiten vollständig , bis der probem fixiert ist.

Für Desktop-Ubuntu-Systeme, aber nicht für die meisten Serversysteme, gibt es eine relativ einfache Lösung . Andernfalls müssen Sie möglicherweise im Wiederherstellungsmodus oder von einer Live-CD / DVD / USB booten, um das Problem zu beheben, dass Sie nicht in der Lage sind, administrative Aktionen auszuführen.

In beiden Fällen sollten Sievisudo zum Bearbeiten /etc/sudoersund für alle Dateien in verwenden /etc/sudoers.d.

Für /etc/sudoers:sudo visudo

Für eine Datei mit dem /etc/sudoers.dNamen vagrant:sudo visudo /etc/sudoers.d/vagrant

visudo Haben Sie eine temporäre Datei bearbeitet und nach dem Beenden Ihre Syntax überprüft, um sicherzustellen, dass sie korrekt ist, bevor Sie die temporäre Datei in die reale Konfigurationsdatei kopieren.

Wenn Sie aufgrund dieses Mechanismus Terminal-Einzeiler anstelle eines Texteditors verwenden möchten , sollten Sie in der Lage sein, visudoin Verbindung mit sedoder einem ähnlichen Mechanismus wie Pipes (wie tee) sudoersDateien sicher auf eine Weise zu bearbeiten , die mit Ihrer vergleichbar ist. habe in "Weg 1" und "Weg 2" verwendet.

Vielleicht wird jemand anderes eine Antwort veröffentlichen, in der genau beschrieben wird, wie das geht. Wenn nicht, kann ich beim nächsten Zugriff auf eine für solche Tests geeignete Maschine versuchen, dies herauszufinden und diese Antwort mit einem Beispiel zu erweitern. Alternativ kann die Verwendung sedoder echosichere Erstellung / Änderung sudoersund sudoers.dKonfiguration als Gegenstand einer separaten Frage betrachtet werden . Dies ist insbesondere dann der Fall , wenn Ihr Hauptinteresse hier ist , ob zu geben NOPASSWD sudo-to-Root - Leistung direkt oder über die Gruppenmitgliedschaft.

Übertragung der Sudo-to-Root-Leistung nach Gruppenmitgliedschaft im Vergleich zu pro Benutzer

Der Hauptunterschied zwischen "Weg 1" und "Weg 2" ist:

  • "Weg 1" macht den Benutzer zum Administrator und gibt Administratoren die Möglichkeit, Befehle als root auszuführen, sudo ohne zur Eingabe eines Kennworts aufgefordert zu werden.
  • "Weg 2" verleiht diese Fähigkeit speziell dem einen Benutzer.

Sofern Sie nicht möchten, dass alle Administratoren ohne Kennwort von Sudo zu Root wechseln können (standardmäßig ist die Eingabe eines Kennworts erforderlich), ist "Weg 2" vorzuziehen.

Jeder Benutzer, der beliebige Befehle als root ausführen möchte, sollte wahrscheinlich auch Administrator sein! (Dies ermöglicht ihnen die Verwendung pkexecund vermeidet Verwirrung, wenn Sie oder ein Mitarbeiter versuchen, herauszufinden, wer alle Benutzer sind, die Systemverwaltungsaufgaben ausführen können.)

Daher ist es möglicherweise am besten , vagrantals Administrator hinzuzufügen undNOPASSWD Fähigkeiten vagrantspeziell (und nicht Administratoren im Allgemeinen) separat zuzuweisen .

Eliah Kagan
quelle
3

Bitte entfernen Sie "%" von Ihrem Weg 2, es hat nicht funktioniert, da "vagrant" ein Benutzer ist, keine Gruppe, die zu ersetzende Zeile ist -

echo vagrant ALL=NOPASSWD:ALL > /etc/sudoers.d/vagrant
vivekyad4v
quelle