Jak ukryć proces w Linuksie

Wszystkie nowoczesne wielozadaniowe systemy operacyjne, w tym Linux, uruchamiają wiele procesów w celu wykonania każdego zadania. Używanie notatnika, okno terminala, serwer SSH, połączenie SSH itp. to osobne procesy. System operacyjny, w naszym przypadku Linux, alokuje zasoby systemowe (czas procesora, pamięć, I/O) między procesami tak, aby każdy proces mógł działać.

Aby wyświetlić listę aktualnie uruchomionych procesów, użyj narzędzia ps:

Parametry aux informują narzędzie, aby wydrukowało wszystkie procesy systemowe z informacjami o użytkowniku, od którego zostały uruchomione, oraz komendą call.

Jak widać, lista zawiera procesy należące do różnych użytkowników, w tym pi, domyślnego użytkownika Raspberry Pi, roota i www-data. Oto kolejny zrzut ekranu, który pokazuje procesy i informacje o ich poleceniu uruchamiania i parametrach:

Jeśli spojrzysz w dół listy, zobaczysz polecenie nano NUMER KONTA BANKOWEGO.TXT wykonane przez użytkownika john. Dane te są udostępniane wszystkim użytkownikom systemu i mogą być wykorzystywane do złośliwych celów.

W jądrze w wersji 3.2 i wyższych zaimplementowana jest funkcja uniemożliwiająca użytkownikowi przeglądanie informacji o procesach, które do niego nie należą. Polecenie ps pobiera informacje o procesie z systemu plików /proc. Dodano nowy parametr hidepid, który jest stosowany podczas montowania systemu plików. Pozwala ukryć informacje o procesach przed użytkownikami, którzy nie mają do nich dostępu.

  • hidepid = 0 - wartość domyślna, wszyscy użytkownicy mogą czytać pliki /proc/pid
  • hidepid = 1 - użytkownicy mogą uzyskać dostęp tylko do własnego podkatalogu /proc/pid, ale pliki cmdline, io, sched*, status są dostępne dla wszystkich
  • hidepid = 2 - wszystkie podkatalogi /proc/pid są ukryte przed użytkownikami

System plików /proc można ponownie zamontować w locie za pomocą opcji remount narzędzia montowania. Aby przetestować hidepid, możesz użyć następującego polecenia:

sudo mount -o remount,rw,hidepid=2 /proc

Następnie próbujemy ponownie wykonać ps:

Teraz zobaczymy tylko procesy działające jako użytkownik pi.

Aby te zmiany były trwałe, edytuj plik /etc/fstab. Ten plik kontroluje sposób montowania systemów plików podczas uruchamiania.

sudo nano /etc/fstab

Znajdź tę linię:

proc /proc domyślne ustawienia proc 0 0

I zastąp go:

proc /proc domyślne ustawienia proc, hidepid=2 0 0

Zamknij edytor za pomocą Ctrl+C i uruchom ponownie komputer. Po ponownym uruchomieniu, /proc zostanie zamontowany z poprawnymi opcjami. Użyj polecenia mount i grep, aby sprawdzić opcje montowania.

mocowanie | grep hidepid

Teraz spróbujmy uruchomić ps:

Jak widać, widoczne są tylko procesy należące do bieżącego użytkownika. Ale jest jedna uwaga. Superużytkownik nadal widzi wszystkie procesy i opcje połączeń.