Können andere Benutzer die an einen Befehl übergebenen Argumente anzeigen?


21

Wenn ich einen Befehl mit folgenden Argumenten aufrufe:

bob@bob-pc:~$ command -arg1 -arg2

... können andere Benutzer die an den Befehl übergebenen Argumente anzeigen?


Eine einfache "Ja" "Nein" - Antwort auf diese Frage würde dem Inhalt und dem Titel widersprechen: P
kizzx2

@ kizzx2: Behoben.
Bahamat

Antworten:


13

Im Allgemeinen können sie es ja sehen. Dies ist aus der wManpage:

Die folgenden Einträge werden für jeden Benutzer angezeigt: Anmeldename, Name der Tty, Remote-Host, Anmeldezeit, Leerlaufzeit, JCPU, PCPU und die Befehlszeile des aktuellen Prozesses.

Die vollständige Befehlszeile Ihres aktuell ausgeführten Prozesses wird angezeigt. Aus diesem Grund möchten Sie keine Passwörter über Befehlszeilenargumente bereitstellen.


Es gibt keine Möglichkeit, das zu deaktivieren?
Nathan Osman

3
@ George Gibt es, weil rdesktop es irgendwie macht (das Passwort-Argument wird zu XXXXXXXX); Ich würde gerne wissen wie. Es könnte etwas lahmes sein, als würde es sich einfach selbst gabelten und ein falsches Argument vorlegen. Ich bin mir nicht sicher
Michael Mrozek

13
Unter Linux kann ein Prozess das übergebene Argument-Array überschreiben. Dies ist der Wert, der im Prozessbaum für andere Benutzer sichtbar ist. Es gibt jedoch immer noch eine Zeit, in der sie exponiert sind und möglicherweise anfällig für Rennbedingungen und Timing-Angriffe sind.
Mattdm

15

Im Allgemeinen sind Befehlszeilenargumente für alle sichtbar. Zum Beispiel kann ich als Nicht-Root-Benutzer unter OpenBSD Argumente von Prozessen sehen, die als Root ausgeführt werden:

$ ps -U root -o command= |grep getty |head -n 1
/usr/libexec/getty std.9600 ttyC0

Unter Linux werden Sie feststellen, dass alle /proc/*/cmdlineDateien weltweit lesbar sind.

Es kann sehr spezielle Einstellungen geben, in denen Befehlszeilenargumente privat bleiben. Beispielsweise können SELinux und Solaris Prozesse vor anderen Benutzern verbergen . Wenn Sie jedoch nicht genau wissen, dass Sie sich in einer solchen Umgebung befinden, nehmen Sie an, dass Befehlszeilenargumente öffentlich sind.


8

In Standardeinstellungen sind die Argumente sichtbar. Wie bereits erwähnt , können Prozesse sie im Speicher überschreiben, jedoch nicht, bevor andere Prozesse die Möglichkeit hatten, sie zu sehen.

Das grsecurity-Patchset enthält jedoch einen Patch, der es so ändert, dass nur der Prozesseigner (und Root) die an einen Prozess übergebenen Argumente sehen kann.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.