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

Sind Umgebungsvariablen für nicht privilegierte Benutzer unter Linux sichtbar?

Wie Gilles in einer sehr umfassenden Antwort auf eine ähnliche Frage auf security.stackexchange.com erklärte, sind Prozessumgebungen nur für den Benutzer zugänglich, der den Prozess besitzt (und natürlich root).


Umgebungsvariablen sind ausreichend sicher. Die von Ihnen verlinkte Frage besagt, dass der einzige Sicherheitsvorteil der Verwendung von Umgebungsvariablen gegenüber einer Konfigurationsdatei die Unklarheit ist, wenn das System kompromittiert ist. Das heißt, wenn jemand Root-Zugriff erlangt hat, kann er auf beide zugreifen.
Ob die Verwendung von Umgebungsvariablen für geheime Daten als „obskur“ gilt, ist ebenfalls umstritten. Dies ist eine sehr verbreitete Praxis, und daher würde ich es nicht als solche betrachten.

Sie können nur an zwei Stellen auf die in einer Umgebungsvariablen gespeicherten Daten zugreifen:

1. Die laufende Umgebung des Prozesses

Wenn der Prozess läuft, kann über /proc/$PID/environ auf die Umgebungsvariablen dieses Prozesses zugegriffen werden . Allerdings kann nur der Benutzer, dem der Prozess gehört, oder root, auf diese Datei zugreifen.

2. Die Quelle der Umgebungsvariablen

Wenn Sie ein Init-Skript verwenden und die Variablen in diesem Init-Skript gespeichert sind, können die Variablen natürlich durch Lesen dieses Skripts abgerufen werden.

Oder wenn die Umgebungsvariablen woanders herkommen, dann wo auch immer das ist.

3. 'ps'-Ausgabe

Ja, ich weiß, ich habe 2 gesagt, und in jedem anständigen System wird es 2 sein. Wenn der Administrator jedoch nicht weiß, was er tut, ist es möglich, einen 3. Weg zu öffnen.

Wenn der Prozess über so etwas wie sh -c 'cd /foo/bar; POP=tart /my/executable' gestartet wird , dann das sh Prozess wird in ps sichtbar sein :

$ sh -c 'cd /; POP=tart sleep 10' &
[1] 3085

$ ps ax | grep POP
phemmer   3085  14   5  0.0  0.0 SN         00:00 sh -c cd /; POP=tart sleep 10

Linux
  1. Linux – Sind Umgebungsvariablen für nicht privilegierte Benutzer unter Linux sichtbar?

  2. Linux – Wie kann man einen Prozess für andere Benutzer unsichtbar machen?

  3. So setzen, listen und entfernen Sie Umgebungsvariablen in Linux

  4. So setzen Sie Linux-Umgebungsvariablen mit Ansible

  5. Festlegen von Linux-Umgebungsvariablen

So setzen Sie Umgebungsvariablen in Linux

So setzen und listen Sie Umgebungsvariablen in Linux auf

So setzen und listen Sie Umgebungsvariablen in Linux auf

So setzen und löschen Sie Umgebungsvariablen unter Linux

Einfache Schritt-für-Schritt-Anleitung zu Linux-Umgebungsvariablen

Linux-Umgebungsvariablen