Czy inni użytkownicy mogą przeglądać argumenty przekazane do polecenia?

21

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?

Nathan Osman
źródło
Prosta odpowiedź „tak” „nie” na to pytanie byłaby sprzeczna z treścią i tytułem: P
kizzx2
@ kizzx2: Naprawiono.
bahamat

Odpowiedzi:

13

Ogólnie tak, mogą to zobaczyć. To jest ze strony wman:

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ń.

Jan Hlavacek
źródło
Nie ma sposobu, aby to wyłączyć?
Nathan Osman,
3
@George Istnieje, ponieważ rdesktop robi to jakoś (argument hasła zmienia się w XXXXXXXX); Chciałbym wiedzieć jak. Może zrobić coś kiepskiego, jak po prostu rozwidlenie się i przekazanie fałszywego argumentu; Nie jestem pewien
Michał Mrożek
13
W systemie Linux proces może zastąpić przekazaną mu tablicę argumentów. Jest to odzwierciedlone w drzewie procesów widocznym przez innych użytkowników. Jednak zawsze jest czas, kiedy są narażeni i mogą być podatni na warunki wyścigu i ataki na czas.
mattdm
15

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/*/cmdlinepliki 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.

Gilles „SO- przestań być zły”
źródło
8

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.

Maciej Piechotka
źródło