Jeśli wywołam polecenie z takimi argumentami:
bob@bob-pc:~$ command -arg1 -arg2
... czy inni użytkownicy mogą przeglądać argumenty przekazane do polecenia?
Jeśli wywołam polecenie z takimi argumentami:
bob@bob-pc:~$ command -arg1 -arg2
... czy inni użytkownicy mogą przeglądać argumenty przekazane do polecenia?
Odpowiedzi:
Ogólnie tak, mogą to zobaczyć. To jest ze strony w
man:
Dla każdego użytkownika wyświetlane są następujące wpisy: nazwa logowania, nazwa tty, zdalny host, czas logowania, czas bezczynności, JCPU, PCPU i wiersz poleceń ich bieżącego procesu.
Wyświetlony zostanie pełny wiersz komend aktualnie uruchomionego procesu. Dlatego nie chcesz podawać takich haseł jak argumenty w wierszu poleceń.
XXXXXXXX
); Chciałbym wiedzieć jak. Może zrobić coś kiepskiego, jak po prostu rozwidlenie się i przekazanie fałszywego argumentu; Nie jestem pewien
Ogólnie argumenty wiersza poleceń są widoczne dla wszystkich. Na przykład, jako użytkownik inny niż root w OpenBSD, widzę argumenty procesów działających jako root:
$ ps -U root -o command= |grep getty |head -n 1
/usr/libexec/getty std.9600 ttyC0
W systemie Linux zauważysz, że wszystkie /proc/*/cmdline
pliki są czytelne na całym świecie.
Mogą istnieć bardzo specyficzne ustawienia, w których argumenty wiersza poleceń pozostają prywatne. Na przykład SELinux i Solaris mogą całkowicie ukryć procesy przed innymi użytkownikami . Ale jeśli absolutnie nie wiesz, że jesteś w takim otoczeniu, załóż, że argumenty wiersza poleceń są publiczne.
W standardowych konfiguracjach argumenty są widoczne. Jak już wspomniano , procesy mogą nadpisać je w pamięci, ale zanim inne procesy będą miały okazję je zobaczyć.
Jednak zestaw poprawek grsecurity zawiera łatkę, która go zmienia, dzięki czemu tylko właściciel procesu (i root) może zobaczyć argumenty przekazane do procesu.