Как заставить приложение всегда требовать разрешения root?
Например, если я запускаю nautilus, оно должно сообщить мне об отказе в разрешении и запустить его как root.
Есть ли способ сделать это в Ubuntu? Принудительно требовать права root?
Я бы предположил, что вам нужно установить владельца bin-файла (программы) как root и сделать его исполняемым только для root.
Итак, в качестве примера, это текущие разрешения на моем nautilus
, который находится в /usr/bin/nautilus
:
alaa@aa-UBUNTU:~$ ls -l /usr/bin | grep nautilus
-rwxr-xr-x 1 root root 1542692 Feb 20 23:13 nautilus
В случае, если вам нужно больше узнать о разрешениях, нажмите здесь . Кроме того, прежде чем что-либо делать, запомните разрешения вашей программы, прежде чем выполнять какие-либо команды, чтобы вы могли вернуться к этим разрешениям, если что-то пойдет не так.
Обратите внимание, что есть три символа «x», что означает, что владелец, группа и другие (в основном все) имеют доступ для его выполнения. Если мы хотим, чтобы приложение требовало разрешения root, нам нужно настроить его так, чтобы root был единственным, кто мог его выполнить, поэтому нам нужно удалить символы «x» (которые являются исполняемыми разрешениями) из «group» и «другой», и оставьте только первый «х». Для этого вы должны сделать:
sudo chmod go-x /usr/bin/nautilus
Эта команда означает:
Таким образом, мы удаляем« x »из« group »и« other ». Теперь разрешения выглядят так:
alaa@aa-UBUNTU:~$ ls -l /usr/bin | grep nautilus
-rwxr--r-- 1 root root 1542692 Feb 20 23:13 nautilus
Если я попытаюсь запустить nautilus
с моим именем пользователя, я получу следующее:
alaa@aa-UBUNTU:~$ nautilus
bash: /usr/bin/nautilus: Permission denied
Чтобы иметь возможность запустить nautilus
Я должен был бы сделать sudo nautilus
.