Führen Sie ifconfig ohne sudo aus

Führen Sie ifconfig ohne sudo aus

Ich habe ein eingebettetes Linux, das auf einer imx6-Plattform läuft. Dies ist ein eingebettetes Freescale-Linux. Das Problem ist, dass für dieses Linux kein sudo verfügbar ist, ich aber das wlan0-Gerät durch einen Benutzer aktivieren und deaktivieren muss. Ich habe versucht, den Benutzer zur Gruppe root hinzuzufügen, aber ohne Erfolg. Ich habe auch versucht, den gesamten Befehl zur Datei /etc/busybox.conf hinzuzufügen, aber auch das hatte keine Wirkung.

Wie kann ich diesen Befehl als Benutzer ausführen, ohne über sudo zu verfügen?

user@touch:~$ /sbin/ifconfig eth0 down
SIOCSIFFLAGS: Permission denied

Antwort1

Wenn dies jedem Nicht-Root-Benutzer zugetraut wird, können Sie einfach ein Setuid-Flag zur ifconfig-Ausführung hinzufügen:

chmod 4755 /sbin/ifconfig

Es erteilt jedem Root-Rechte für die Ausführung dieser ausführbaren Datei. Natürlich benötigen Sie Root-Zugriff, um chmod auszuführen.

Antwort2

Sie müssen sudoden Befehl nicht ausführen ifconfig, stellen Sie nur sicher, dass /sbinsich in Ihrem PATH befindet.

Führen Sie als nicht privilegierter Benutzer Folgendes aus:

export PATH=$PATH:/sbin
ifconfig

Antwort3

  1. Für neue Linux-Benutzer: Das Paket sudogibt einem nicht privilegierten Benutzer eine voreingestellte Anzahl von Minuten, um Dinge am System zu tun, die nur der Systemadministrator („root“ == „uid=0“) tun kann.

  2. Das Programm ifconfigist mit vielen Sicherheitsproblemen für Linux-Betriebssysteme verbunden, die sich auf öffentlichen Servern befinden. Für Desktop- und Heimserver mit KVM-Verbindungen, die keinen SSH-Zugriff benötigen und keine 24/7-Internetverbindung benötigen, hat dieses Programm geringere Sicherheitsanforderungen.

  3. ifconfigwird durch ein anderes Programm namens geschützt netdevice. Dieses Programm bietet Low-Level-Zugriff auf Linux-Netzwerkgeräte. Siehe man netdevice. Der Fehler, der ausgelöst wurdeSIOCSIFFLAGS: Berechtigung verweigertliegt daran, dass das Programm ifconfigals privilegiert markiert ist und eine effektive Benutzerkennung von 0 ('root' <==> 'uid=0') oder die CAP_NET_ADMINBerechtigung erfordert. Wenn dies nicht der Fall ist, EPERMwird zurückgegeben.

  4. Um herauszufinden, was CAP_NET_ADMINes ist, müssen wir lesencapabilities(7) — Linux-Handbuchseite. Die wichtige Information hier ist „CAP_NET_ADMIN: Führt verschiedene netzwerkbezogene Operationen wie Schnittstellenkonfiguration aus“. Um herauszufinden, was das EPERMist, müssen wir lesen man setuid. Der EPERMFehler wird ausgelöst, wenn der Benutzer nicht privilegiert ist (Linux: hat die CAP_SETUIDBerechtigung nicht) UND die UID nicht mit der echten UID oder der gespeicherten Set-User-ID des aufrufenden Prozesses übereinstimmt.

  5. Es ist nicht möglich, Ihren „Benutzernamen“ einfach zur Gruppe „root“ hinzuzufügen. Beispiel für Ubuntu-Distributionen: sudo adduser username rootgibt Ihnen nicht die erforderliche UID 0, um alle netdeviceerforderlichen Sicherheitsprüfungen zu bestehen. Wenn visudoauf dem System verfügbar ist, können Sie sehen, dass der Eintrag Defaults secure_path=""keinen Pfad zum Programm enthält netdevice.h. Daher ist es unwahrscheinlich, dass das Ändern der Sudo-Berechtigungen (mit visudo) für das ifconfigProgramm dazu führt, die von bereitgestellte Sicherheitskontrolle zu umgehen netdevice.

Vorausgesetzt, Sie betreiben keinen öffentlichen Server, ist die Antwort von @tonioc die einfachste Möglichkeit, die Schnittstellen einer Linux-Distribution (wie Ubuntu, das nach einem Neustart automatisch alle Ethernet-Schnittstellen aktiviert) ohne Verwendung von sudoBerechtigungen ein- und auszuschalten. Der sudo chmod 4755 /sbin/ifconfigBefehl ist eine einfache Möglichkeit, Ihr System so zu ändern, dass ein Startskript wie ifconfig eth0 downeine Schnittstelle ausschalten kann (ohne Eingabe eines Kennworts). Für Desktops/Server, an die sowohl Intranet- als auch Internet-Netzwerke angeschlossen sind (Multi-NIC), ist es aus Sicherheitsgründen wichtig, dass die Internet-Netzwerke ausgeschaltet bleiben, wenn sie nicht benötigt werden.

verwandte Informationen