GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Welchen Pfad verwendet „sudo“ für die Suche nach „?

Ich habe Eclipse in meinem Home-Verzeichnis installiert und seinen Pfad in PATH eingefügt in ~/.profile .

Es funktioniert also mit

$ eclipse 

Aber wenn man es mit sudo aufruft , eclipse nicht gefunden:

$ sudo eclipse 
sudo: eclipse: command not found

Welcher PATH macht sudo eclipse verwenden, um nach eclipse zu suchen ? Ist es der Benutzer root 's PATH ?

Danke.

Akzeptierte Antwort:

sudo verwendet standardmäßig ein Minimal PATH , um es für die Verwendung durch root sicher zu machen Benutzer. Das ist nicht unbedingt dasselbe wie der PATH würden Sie erhalten, indem Sie sich als root anmelden Benutzer oder indem Sie

sudo su -

In neueren Red Hat-Versionen ist mir beispielsweise aufgefallen, dass der Pfad /usr/local/bin auslässt .

Die Handbuchseite fasst dies in einem Abschnitt mit dem Titel Sicherheitshinweise zusammen :

sudo versucht, beim Ausführen externer Befehle sicher zu sein.

Es gibt zwei verschiedene Möglichkeiten, mit Umgebungsvariablen umzugehen. Standardmäßig ist die Datei env_reset sudoers
Option ist aktiviert. Dadurch werden Befehle mit einer minimalen Umgebung ausgeführt, die TERM enthält , PATH , HOME , SHELL , LOGNAME , USER und USERNAME zusätzlich zu Variablen aus dem aufrufenden Prozess
erlaubt durch env_check und env_keep sudoers Optionen. Es gibt praktisch eine Whitelist für
Umgebungsvariablen.

Weiterführende Literatur:

  • sudoers – Liste, welche Benutzer was ausführen dürfen

    secure_path
    Pfad, der für jeden Befehl verwendet wird, der von sudo ausgeführt wird. Wenn Sie den Leuten, die sudo ausführen, nicht vertrauen, dass sie
    eine vernünftige PATH-Umgebungsvariable haben, sollten Sie diese verwenden. Eine andere Verwendung ist, wenn Sie
    möchten, dass der „Stammpfad“ vom „Benutzerpfad“ getrennt ist. Benutzer in der durch exempt_group angegebenen Gruppe
    Option werden nicht von secure_path beeinflusst . Diese Option ist nicht
    standardmäßig gesetzt.

  • sudo – einen Befehl als ein anderer Benutzer ausführen


Linux
  1. Debian vs. Ubuntu für die Servernutzung, welches man wählen soll

  2. Python – Woher weiß /usr/bin/env, welches Programm zu verwenden ist?

  3. „nohup Sudo …“ fragt nicht nach Passwd und tut nichts?

  4. Woher weiß ein transparenter Socks-Proxy, welche Ziel-IP verwendet werden soll?

  5. Linux – Welche Anwendung für einen Kalender verwenden?

Verwenden Sie Find and Locate, um unter Linux nach Dateien zu suchen

Pipe-Ausgabe zur Verwendung als Suchspezifikation für grep unter Linux

Welchen Befehl verwenden, um zu prüfen, ob Python 64-Bit oder 32-Bit ist

Wie entscheidet Pip, welches Linux-Rad verwendet werden soll?

So legen Sie den Pfad für sudo-Befehle fest

Warum sollte man sudo verwenden?