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