Skrytí cizích procesů před uživatelem

Na serverech s Linuxem jsem si zvykl používat grsecurity patch. Pomocí grsecuity patche je možné zlepšit zabezpečení systému, patch také umí nastavit práva na adresář /proc tak, že neprivilegovaný uživatel vidí jen své procesy. Tato funkce se mi docela líbí i na pracovní stanici, protože přináší trochu víc soukromí pokud počítač používá víc lidí najednou. Doma mám stroj se Solarisem a tuto featuru jsem si chtěl nastavit i na něm. Následující text je platný pro Solaris 10, je jedno jestli jde o platformu SPARC nebo x86.

Pokud si jako běžný uživatel vypíšete seznam procesů na počítači například pomocí příkazu ps -ef, uvidíte všechny procesy všech ostatních uživatelů. V Solarisu 10 je možné nastavit oprávnění procesů v systému no a toho využijeme i v tomto případě.

V souboru /etc/security/policy.conf je třeba odkomentovat řádek s PRIV_DEFAULT a doplnit do tvaru

PRIV_DEFAULT=basic,!proc_info

. Po této úpravě uvidíte jako běžný uživatel pouze své procesy, jako root samozřejmě vidíte všechno.

tsunami@draslik:~$ id
uid=100(tsunami) gid=100(users)
tsunami@draslik:~$ ps -efa
     UID   PID  PPID   C    STIME TTY         TIME CMD
 tsunami   762   754   0 18:15:21 pts/3       0:00 bash
 tsunami   752   749   0 18:15:19 ?           0:00 /usr/lib/ssh/sshd
 tsunami   754   752   0 18:15:19 pts/3       0:00 -bash
 tsunami   772   762   0 18:25:15 pts/3       0:00 ps -efa

Popis volby proc_info získáte pomocí příkazu ppriv:

root@draslik:~# ppriv -l -v proc_info
proc_info
        Allows a process to examine the status of processes other
        than those it can send signals to.  Processes which cannot
        be examined cannot be seen in /proc and appear not to exist.

Nastavení provedené v souboru /etc/security/policy.conf je globální. Pokud potřebujete upravit nastavení pro jednotlivé uživatele, použijte soubor /etc/user_attr.

Odkazy na zdroje dalších informací: