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