У меня настольный ПК Ubuntu 10.04 LTS с GNOME.
Как я могу полностью отключить функции перезагрузки / выключения / приостановки / гибернации в GNOME или даже с root? Так что root выдает команду «reboot» или «pm-suspend», он ничего не делает, и машина продолжает работать. Как я могу полностью отключить эти основные «функции»?
shutdown
иpm-suspend
с/sbin/
и/bin/
Ответы:
Доступ пользователей к этим действиям контролируется polkit. В частности, они соответствуют следующим действиям:
org.freedesktop.consolekit.system.stop
org.freedesktop.consolekit.system.restart
org.freedesktop.upower.suspend
org.freedesktop.upower.hibernate
Все эти действия разрешены по умолчанию для активных локальных пользователей (хотя
consolekit
еще больше ограничивает первые два разрешения, чтобы они работали только тогда, когда в систему вошел единственный пользователь).Если вы хотите отключить эти действия, создайте файл,
/etc/polkit-1/50-local.d/disable-shutdown.pkla
содержащий что-то вроде:Это должно помешать выполнению этих действий. Дополнительную информацию об этих файлах политики можно найти, запустив
man pklocalauthority
.Если вы пытаетесь ограничить
root
это, это будет лишь незначительным неудобством. По определению,root
это неограниченная учетная запись в соответствии с традиционной UNIX дискреционной системой контроля доступа. Если вы не можете доверять пользователям, которым вы предоставили полныйroot
доступ, тогда у вас больше проблем, чем когда они просто выключают систему.Обратите внимание, что в более поздних версиях Ubuntu кто-то решил нарушить совместимость. Как ответили в Как отключить выключение / перезагрузку из lightdm в 14.04? кажется, что действие изменилось на «org.freedesktop. login1 .reboot» (и тому подобное).
Например в 14.04 добавление следующих строк как
/etc/polkit-1/localauthority/50-local.d/restrict-login-powermgmt.pkla
работает:Кроме того, обратите внимание, что этот метод блокирует только команды перезагрузки / etc, выполненные из GUI. Чтобы заблокировать команды перезагрузки / etc из командной строки, можно использовать molly-guard - как описано в разделе Отключение команды выключения для всех пользователей, даже root - последствия?
источник
Подумайте об установке Molly-Guard .
Этот пакет предотвратит непреднамеренное выключение / перезагрузку / приостановку / спящий режим, интерактивно предложив вам ввести имя хоста системы.
Тем не менее, очень просто настроить molly-guard для полного отключения shutdown / reboot / suspend / hibernate. Просто создайте исполняемый файл в /etc/molly-guard/run.d/99-prevent-all, в котором есть это:
Обратите внимание, что он защищает только от команд, выпущенных из командной строки, shutdown / reboot / suspend / hibernate, выпущенных из GUI, обходит его. Для блокировки также графического интерфейса при перезагрузке можно использовать правила polkit .
источник
источник
/bin/systemctl
и удаляют из нее исполняемый бит. Это критически важный исполняемый файл, который также контролируетservice SERVICE_NAME [stop|start|restart]
. Ваша система, вероятно, больше не будет загружаться (если вы вообще можете отключить ее)./bin/systemctl
устанавливается только чтение-запись-rw-r--r-- 1 root root
Опираясь на ответ ОП, вы можете сделать
Это переименовывает символические ссылки и заменяет их пустыми файлами. Это предотвратит завершение командной строки, я не знаю, вызывают ли команды GUI их или делают их самостоятельно, так что вам, возможно, придется также принять принятый ответ.
источник