Alle modernen Multitasking-Betriebssysteme, einschließlich Linux, führen für jede der ausgeführten Aufgaben eine Reihe von Prozessen aus. Eine Notepad-Anwendung ist ein Prozess, ein Terminal-Fenster ist ein Prozess, der SSH-Server ist ein Prozess, jede SSH-Verbindung ist ein Prozess und so weiter. Linux plant die verschiedenen Systemressourcen (CPU-Zeit, Speicher, E / A), so dass jeder Prozess eine Gelegenheit zum Ausführen erhält.

Um die Liste der laufenden Prozesse anzuzeigen, können Sie den Befehl ps . Versuchen Sie dies in einem Terminal:

 PS Aux 

Die aux Parameter sagen ps an, alle Systemprozesse mit zusätzlichen Informationen darüber aufzulisten, wem die Prozesse gehören und welche Aufrufparameter verwendet wurden.

Wie Sie sehen können, zeigt die Liste Prozesse, die verschiedenen Benutzern gehören, einschließlich "pi" (der standardmäßige Raspbian-Benutzer auf einem Raspberry Pi), "root" und "www-data". Hier ist ein leicht modifizierter Screenshot, der die Prozesse zusammen mit ausführlicheren Details zu den Befehlen und ihren Parametern zeigt.

Wenn Sie in der Liste nach unten schauen, sehen Sie den Befehl nano MYBANKACCOUNTNUMBER.TXT der dem Benutzer "john" gehört. Stellen Sie sich vor, der Dateiname wäre etwas aufschlussreicher als das Beispiel; Diese Daten sind allen Benutzern auf dem System zugänglich und könnten für böswillige Zwecke verwendet werden.

Seit Linux Kernel 3.2 gibt es eine Möglichkeit, Benutzer daran zu hindern, auf Informationen über Prozesse zuzugreifen, die ihnen nicht gehören. Der Befehl ps ruft die Prozessinformationen aus dem Dateisystem / proc ab (wobei "proc" eine Abkürzung für process ist). Es gibt einen neuen Parameter namens "hidepid", der verwendet wird, wenn das / proc Dateisystem angehängt wird. Es kann Prozesse ausblenden und kontrollieren, wer Zugriff auf die Informationen unter / proc hat.

  • hidepid = 0 - Das Standardverhalten, bei dem jeder Benutzer die Dateien unter / proc / PID / lesen kann
  • hidepid = 1 - Es bedeutet, dass Benutzer nicht auf ein beliebiges / proc / PID / Unterverzeichnis zugreifen können, außer auf ihr eigenes. Auch Dateien wie cmdline, io, sched *, status, wchan sind für andere Benutzer nicht zugänglich.
  • hidepid = 2 - Alles von hidepid = 1 plus alle / proc / PID / Unterverzeichnisse werden für andere Benutzer ausgeblendet.

Das Dateisystem / proc kann mit der Option remount des Befehls mount remounted werden. Um Hidepid zu testen, können Sie das / proc Dateisystem wie folgt remounten:

 sudo mount -o erneut mounten, rw, hidepid = 2 / proc 

Jetzt können Sie den Befehl ps erneut versuchen:

 PS Aux 

Jetzt zeigt die Ausgabe nur Prozesse an, die dem Benutzer "pi" gehören.

Um diese Änderung dauerhaft zu machen, müssen Sie die Datei "/ etc / fstab" des Pi bearbeiten. Die Datei "fstab" steuert, welche Dateisysteme beim Start geladen werden.

 sudo nano / etc / fstab 

Und finde die Zeile, die lautet:

 proc / proc proc standardmäßig 0 0 

Und ändere es zu:

 proc / proc proc defaults, hidepid = 2 0 0 

Beenden Sie den Editor mit "Strg + X". Starten Sie nun Ihren Raspberry Pi neu. Stellen Sie beim Neustart sicher, dass das / proc-Dateisystem mit den richtigen Optionen geladen wurde. Verwenden Sie zunächst mount und grep, um die aktuellen Optionen anzuzeigen:

 montieren | Grep Hidepid 

Testen Sie nun den ps Befehl genau wie oben:

 PS Aux 

Beachten Sie, dass nur die Prozesse von "pi" sichtbar sind, aber anders als zuvor, als wir das / proc-Dateisystem neu gemountet haben, ist dies jetzt die permanente Einstellung. Jedoch, ein Wort der Warnung, selbst wenn hidepid verwendet wird, kann "root" immer noch alle Prozesse und die aufrufenden Parameter sehen.

Die oben beschriebene Technik funktioniert auf anderen Linux-Rechnern und Distributionen, nicht nur auf dem Raspberry Pi mit Raspbian. Wenn Sie Fragen zur Verwendung der Option "hidepid" im Dateisystem / proc haben, können Sie den Kommentarabschnitt unten verwenden und wir werden sehen, ob wir Ihnen helfen können.