Я хочу ограничить открытие приложения обычными привилегиями. Только root должен запускать приложение, так что содержимое не будет видно другим, и они ничего не изменят.
Должен быть лучший способ сделать это (возможно, с AppArmor?), Но вы всегда можете изменить разрешения исполняемого файла. Предположим, вы хотите отключить доступ к nano
. Их разрешения по умолчанию следующие:
➜ ls -la /bin/nano
-rwxr-xr-x 1 root root 192008 Oct 1 15:12 /bin/nano
Это может быть выполнено владельцем, группой и другими. Чтобы сохранить только выполнение владельцем, вы можете использовать
sudo chmod g-x /bin/nano
sudo chmod o-x /bin/nano
После этого, если вы выполняете его в терминале как обычный пользователь:
➜ nano
bash: /usr/bin/nano: Permission denied
Обратите внимание, что это не доказательство решения. Если приложение, которое вы хотите заблокировать, имеет другие точки входа, они все равно могут быть доступны. Например, если вы попробовали тот же трюк с Firefox:
➜ ls -la /usr/bin/firefox
lrwxrwxrwx 1 root root 25 Jan 17 08:26 /usr/bin/firefox -> ../lib/firefox/firefox.sh
Даже если вы ограничили доступ к /usr/bin/firefox
, так как это всего лишь ссылка на /usr/lib/firefox/firefox.sh
, он все равно может быть там выполнен ( или используя /usr/lib/firefox/firefox
, который используется в файле .sh).