web-dev-qa-db-fra.com

Comment empêcher un utilisateur d'accéder à une application particulière?

Je veux restreindre l'ouverture d'une application avec des privilèges ordinaires. Seul root doit exécuter l'application, de sorte que le contenu ne soit pas lu par les autres et ne change rien.

8
GKUTTY

Il devrait exister un meilleur moyen de le faire (peut-être avec AppArmor?), Mais vous pouvez toujours modifier les autorisations de l'exécutable. Supposons que vous souhaitiez désactiver l'accès à nano. Leurs autorisations par défaut sont les suivantes:

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

Il peut être exécuté par le propriétaire, le groupe et d’autres. Pour maintenir uniquement l'exécution du propriétaire, vous pouvez utiliser

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

Après cela, si vous l’exécutez dans un terminal en tant qu’utilisateur ordinaire:

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

Veuillez noter qu'il ne s'agit pas d'une solution à l'épreuve des balles. Si l'application que vous souhaitez verrouiller possède d'autres points d'entrée, vous pouvez toujours y accéder. Par exemple, si vous avez essayé le même truc avec Firefox:

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

Même si vous avez limité l'accès à /usr/bin/firefox, comme il ne s'agit que d'un lien vers /usr/lib/firefox/firefox.sh, il peut toujours être exécuté par là (ou à l'aide de /usr/lib/firefox/firefox, qui est utilisé dans le fichier .sh) .

2
Salem