Wie konfiguriere ich sudoers Datei richtig auf debian wheezy?

10

Ich habe viele Blog-Beiträge gesehen, die besagen, dass es genug ist, dies zu tun

aptitude install sudo
su root
adduser USERNAME sudo

Das schützt aber nur aptitude:

  • aptitude install sendmailWenn Sie nach dem Passwort fragen, müssen Sie sudoausgeführt werdenaptitude

  • apt-get install sendmailfragt nicht nach dem Passwort, es sind keine sudoBerechtigungen erforderlich

  • Wenn Sie geschützte Dateien bearbeiten, z. B. Dateien, in denen etckein Kennwort abgefragt wird, sind keine sudoBerechtigungen erforderlich

  • Sie können Dienste ausführen und stoppen, z. B. apachewerden Sie nicht nach einem Kennwort gefragt, es sind keine sudoBerechtigungen erforderlich

Wie kann ich das beheben? Dies ist meine Sudoers-Datei:

 This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:$

# Host alias specification

# User alias specification

# Cmnd alias specification

Dies ist die Ausgabe von sudo -l:

Matching Defaults entries for root on this host:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User root may run the following commands on this host:
    (ALL : ALL) ALL
    (ALL : ALL) ALL
Lynob
quelle
3
Nach su root, sind Sie in als angemeldeten rootBenutzer, so dass Sie vollen Zugriff auf alles haben. sudoMelden Sie sich von der Shell ab, die als ausgeführt wird, um wieder eine normale Verwendung zu erhalten, die für privilegierte Vorgänge verwendet werden muss root.
depquid
Ich bin neu in Linux, aber Debian Wiki sagt - Adduser Benutzername sudo wiki.debian.org/sudo
AntiCZ

Antworten:

16

Sie haben keine Sudo-Regel hinzugefügt, daher können Sie Sudo für nichts verwenden.

Der Befehl adduser USERNAME sudofügt den angegebenen Benutzer der aufgerufenen Gruppe hinzu sudo. Eine Gruppe mit diesem Namen muss existieren. Erstellen Sie es mit, addgroup sudowenn dies nicht der Fall ist. Nach dem Hinzufügen des Benutzers zur Gruppe muss sich der Benutzer abmelden und wieder anmelden, damit die Gruppenmitgliedschaft wirksam wird.

sudoist kein spezieller Gruppenname. Es ist eine Konvention, Benutzern in der aufgerufenen Gruppe zu erlauben sudo, Befehle als root über das sudoDienstprogramm auszuführen . Dies erfordert die folgende Zeile in der sudoersDatei:

%sudo ALL = (ALL) ALL

Führen Sie diese aus visudo, um die sudoers-Datei zu bearbeiten. Bearbeiten Sie sie niemals direkt.

Ich habe keine Ahnung, warum Sie glauben, dass "das nur die Eignung schützt". Eignung ist nichts Besonderes. Sobald Sie einen Benutzer zum Ausführen von Befehlen als Root autorisiert haben, kann dieser Benutzer sudo aptitude …oder sudo apt-get …oder sudo service …oder sudoeditDateien bearbeiten , für deren Bearbeitung Root-Berechtigungen erforderlich sind. Wenn Sie sich in der sudoers-Datei befinden, werden die Berechtigungen Ihres Benutzers nicht direkt geändert. Sie können damit sudoBefehle als root ausführen. Befehle werden nur dann als root ausgeführt, wenn Sie sie durchlaufen sudo. Einige Programme tun dies möglicherweise automatisch, insbesondere GUI-Programme, bei denen die Benutzeroberfläche ohne spezielle Berechtigungen ausgeführt wird und nur das Backend als root ausgeführt wird, Befehle, die als root ausgeführt werden, jedoch immer von ausgeführt werden sudo.

Gilles 'SO - hör auf böse zu sein'
quelle
Er ist sudo -lals Wurzel gelaufen . Selbst wenn es nützliche Definitionen für Benutzer gibt, wären sie nicht angezeigt worden. Daher kann Ihre Vermutung "Sie haben keine Sudo-Regel hinzugefügt" falsch sein.
Hauke ​​Laging
@HaukeLaging Ich verstehe deinen Kommentar nicht. "Sie haben keine Sudo-Regel hinzugefügt" ist keine Vermutung: Die sudoersDatei ist in Frage.
Gilles 'SO - hör auf böse zu sein'
Ich war kurz davor, depressiv zu werden, als mir klar wurde, dass ich mich zu sehr auf die sudo -lAusgabe konzentrierte, aber zum Glück ... Es scheint, dass der Inhalt der Frage nicht die gesamte Datei sein kann, da er nicht mit der Ausgabe übereinstimmt. Zumindest behauptet meine sudoVersion nicht "Benutzer root kann die folgenden Befehle ausführen" mit einer sudoersohne Befehlsdefinition (wie der in der Frage).
Hauke ​​Laging
@HaukeLaging Du hast recht, ich habe mit keuchend nachgefragt und in der Tat sudo -lnur gesagt "User root darf sudo nicht auf darkstar ausführen." Und die sudoGruppe befindet sich standardmäßig in der sudoers-Datei bei wheezy. Die erforderlichen Einträge wurden möglicherweise in eine Datei unter verschoben /etc/sudoers.d. Was auch immer die sudoers-Datei enthält, sie würde auf keinen Fall das tun, was Fischer annimmt.
Gilles 'SO - hör auf böse zu sein'
4

Was möglicherweise passiert ist, ist: sudo speichert Ihr Passwort zwischen. Nachdem Sie die Implementierung von sudo auf Ihrem System korrekt abgeschlossen haben, müssen Sie das Kennwort für den ersten Befehl eingeben. Danach wird es für einige Zeit zwischengespeichert. In diesem Fall führen Sie die Sequenz aus

sudo aptitude install sendmail
sudo apt-get install sendmail

Dann müssen Sie beim ersten Befehl ein Passwort eingeben, beim zweiten jedoch nicht (zumindest solange Sie sich noch innerhalb des Timeouts befinden). Dies scheint das Gefühl zu haben, dass nur der erste Befehl geschützt wird, nicht jedoch der zweite. Ohne weitere Informationen (vollständige Shell-Transkripte) kann man nicht sagen ...

Josef
quelle
Ja. Das eine schließt das andere nicht aus. Die richtige Antwort erklärt gut, wie man sudo richtig einrichtet, und in diesem Sinne beantwortet sie die Frage. Es erklärt nicht, warum in den Worten der Frage "das nur die Eignung schützt". Gilles schreibt sich: "Ich habe keine Ahnung, warum Sie glauben, dass" das nur die Eignung schützt "." Wie gesagt, um dieses Phänomen wirklich zu verstehen, sind mehr Informationen erforderlich. Ich denke, eine Ablehnung ist etwas hart, da meine Antwort sachlich korrekt ist, die ursprüngliche Frage anspricht und eine Lücke in der vorhandenen Antwort schließt.
Josef
Gute Idee, dies könnte die Quelle von Fischers Verwirrung sein.
Gilles 'SO - hör auf böse zu sein'
0

Wenn Sie der obigen Antwort folgen, gehen Sie den richtigen Weg. Zumindest in meiner Debian Jessie habe ich einen weichen Link zu / usr / bin des Befehls im Pfad / sbin erstellt. Zum Beispiel: / sbin / ifup, ich habe einen Softlink (ln -s) zu / usr / bin davon gesetzt und ich kann ihn verwenden.

Eine andere wichtige Sache ist, NOPASSWD so zu setzen:

User_Alias NET = goviedo
Cmnd_Alias ETH = /sbin/ifup
NET ALL = NOPASSWD:ETH
Gonzalo Oviedo
quelle