Jak ograniczyć dostęp użytkownika do określonej aplikacji?

8

Chcę ograniczyć otwieranie aplikacji na zwykłych uprawnieniach. Tylko root będzie uruchamiał aplikację, aby inni nie widzieli jej zawartości i niczego nie zmieniali.

GKUTTY
źródło
@VRU Nie jestem pewien, czy Twój link jest duplikatem.
don.joey
1
@VRU Ponieważ nie można oszukiwać witryn acros, możemy na pewno użyć w tym miejscu pytań i odpowiedzi (chyba że zadeklarujemy ten nie na temat, czego nie zrobiłbym).
user98085,
@GKUTTY w celach informacyjnych stackoverflow.com/questions/527876/...
VRU

Odpowiedzi:

2

Powinien istnieć lepszy sposób na to (może z AppArmor?), Ale zawsze możesz zmienić uprawnienia pliku wykonywalnego. Załóżmy, że chcesz wyłączyć dostęp do nano. Ich domyślne uprawnienia są następujące:

 ➜  ls -la /bin/nano
-rwxr-xr-x 1 root root 192008 Oct  1 15:12 /bin/nano

Może być wykonany przez właściciela, grupę i inne osoby. Aby zachować tylko wykonanie właściciela, możesz użyć

sudo chmod g-x /bin/nano
sudo chmod o-x /bin/nano

Następnie, jeśli wykonasz go w terminalu jako zwykły użytkownik:

 ➜  nano
bash: /usr/bin/nano: Permission denied

Należy pamiętać, że nie jest to rozwiązanie kuloodporne. Jeśli aplikacja, którą chcesz zablokować, ma inne punkty wejścia, nadal można uzyskać do nich dostęp. Na przykład, jeśli wypróbowałeś tę samą sztuczkę w przeglądarce Firefox:

 ➜  ls -la /usr/bin/firefox
lrwxrwxrwx 1 root root 25 Jan 17 08:26 /usr/bin/firefox -> ../lib/firefox/firefox.sh

Nawet jeśli masz ograniczony dostęp do /usr/bin/firefox, ponieważ jest to tylko link do /usr/lib/firefox/firefox.shniego, nadal może być przez niego wykonany (lub używając /usr/lib/firefox/firefox, który jest używany w pliku .sh).

Salem
źródło