Domyślnie użytkownicy systemów Linux uprawnieni są do wyświetlenia pełnej listy procesów uruchomionych w systemie. Na liście procesów widoczne są też argumenty, z którymi zostały uruchomione programy (niekiedy widoczne są nawet hasła czy klucze API do różnych serwisów). W środowisku z wieloma użytkownikami takie zachowanie nie jest pożądane.
Jeśli system posiada jądro w wersji co najmniej 3.2 można zamontować system plików /proc z opcją hidepid. Opcja hidepid umożliwia między innymi ukrycie informacji o procesach przed innymi użytkownikami. Możliwe opcje:
- 0 – domyślne ustawienie, użytkownicy widzą wszystkie procesy
- 1 – normalni użytkownicy nie mają dostępu od pełnej listy procesów wyświetlanych przez polecenia typu ps, top itp. Istnieje jednak możliwość znalezienia informacji o procesach w systemie plików /proc
- 2 – normalni użytkownicy widzą tylko i wyłącznie swoje procesy (tak jak w hidepid=1). Nie ma możliwości znalezienia informacji o procesach w systemie plików /proc
Poniżej przedstawiony jest wynik komendy ps wydanej przez normalnego użytkownika. Jak można zauważyć widoczne są wszystkie uruchomione procesy, nawet te systemowe.
ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 10648 800 ? Ss 2015 0:49 init [2] root 2 0.0 0.0 0 0 ? S 2015 0:02 [kthreadd] root 3 0.0 0.0 0 0 ? S 2015 0:04 [ksoftirqd/0] ... root 2210 0.0 0.0 120932 5780 ? Sl 2015 8:12 /usr/sbin/rsyslogd -c5 root 2299 0.0 0.0 4116 632 ? Ss 2015 0:00 /usr/sbin/acpid daemon 2350 0.0 0.0 16672 148 ? Ss 2015 0:00 /usr/sbin/atd root 2401 0.0 0.0 20408 1044 ? Ss 2015 0:58 /usr/sbin/cron 104 2448 0.0 0.0 29804 712 ? Ss 2015 0:00 /usr/bin/dbus-daemon --syste root 2486 0.0 0.0 49932 1200 ? Ss 2015 0:00 /usr/sbin/sshd root 2543 0.0 0.0 115604 1388 ? Ss 2015 0:00 nginx: master process /usr/s www-data 2544 0.0 0.0 116064 3188 ? S 2015 2:19 nginx: worker process www-data 2545 0.0 0.0 116064 3188 ? S 2015 3:01 nginx: worker process www-data 2547 0.0 0.0 116064 3192 ? S 2015 2:37 nginx: worker process www-data 2548 0.0 0.0 116064 3188 ? S 2015 2:25 nginx: worker process 101 3241 0.0 0.0 44740 976 ? Ss 2015 0:02 /usr/sbin/exim4 -bd -q30m root 3273 0.0 0.0 16256 932 tty1 Ss+ 2015 0:00 /sbin/getty 38400 tty1 root 3274 0.0 0.0 16256 936 tty2 Ss+ 2015 0:00 /sbin/getty 38400 tty2 root 3275 0.0 0.0 16256 928 tty3 Ss+ 2015 0:00 /sbin/getty 38400 tty3 root 3276 0.0 0.0 16256 928 tty4 Ss+ 2015 0:00 /sbin/getty 38400 tty4 root 3277 0.0 0.0 16256 924 tty5 Ss+ 2015 0:00 /sbin/getty 38400 tty5 root 3278 0.0 0.0 16256 924 tty6 Ss+ 2015 0:00 /sbin/getty 38400 tty6 kowalsio 5147 0.0 0.0 4180 576 pts/0 S 13:39 0:00 sh kowalsio 5148 0.0 0.0 16836 1224 pts/0 R+ 13:39 0:00 ps aux
W celu ograniczenia informacji o procesach, nie należących do danego użytkownika, należy wydać polecenie:
mount -o remount /proc -o hidepid=2
System plików /proc zostanie zamontowany ponownie z opcją hidepid=2
Po wprowadzeniu zmian wydanie polecenia ps aux przez normalnego użytkownika, spowoduje wyświetlenie listy procesów uruchomionych przez danego użytkownika.
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND kowalsio 5622 0.0 0.0 4180 576 pts/0 S 13:42 0:00 sh kowalsio 5623 0.0 0.0 16836 1208 pts/0 R+ 13:42 0:00 ps aux
Aby zmiana ustawień była zachowana również po restarcie systemu należy odpowiednio zmodyfikować wpis w pliku /etc/fstab dodając opcję hidepid.
proc /proc proc defaults,hidepid=2 0 0
Ustawienie to nie dotyczy konta administratora – root. Administrator ma zawsze dostęp do pełnej listy procesów bez względu na wprowadzone zmiany w ustawieniach.
Dodaj komentarz