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?
command-line
security
process
Nathan Osman
quelle
quelle
Antworten:
Im Allgemeinen können sie es ja sehen. Dies ist aus der
w
Manpage:Die vollständige Befehlszeile Ihres aktuell ausgeführten Prozesses wird angezeigt. Aus diesem Grund möchten Sie keine Passwörter über Befehlszeilenargumente bereitstellen.
quelle
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 sicherIm 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:
Unter Linux werden Sie feststellen, dass alle
/proc/*/cmdline
Dateien 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.
quelle
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.
quelle