Библиотека сайта rus-linux.net
Как в Linux отключить команды Shutdown и Reboot для пользователя
Оригинал: How to Disable Shutdown and Reboot Commands in Linux
Автор: Aaron Kili
Дата публикации: 27 мая 2017 года
Перевод: А. Кривошей
Дата перевода: декабрь 2017 г.
Команда shutdown планирует время до выключения системы Linux, она также может быть использована для остановки, выключения или перезагрузки компьютера при вызове с определенными параметрами, а reboot заставляет систему перезагрузиться.
Некоторые дистрибутивы Linux, такие как Ubuntu, Linux Mint, Mandriva, а также некоторые другие, позволяют по умолчанию перезагружать/останавливать/выключать систему обычному пользователю. Это не идеальный вариант, особенно для серверов, и он должен беспокоить системных администраторов.
В этой статье мы покажем, как отключить команды shutdown и reboot для обычных пользователей в Linux.
Отключение команд Shutdown и Reboot в Linux
Проще всего отключить команды shutdown и reboot с помощью файла /etc/sudoers, здесь вы можете указать пользователя (tecmint) или группу (developers), которым запрещено выполнять эти команды.
# vi /etc/sudoers
Добавьте следующие строки в секцию Command Aliases.
Cmnd_Alias SHUTDOWN = /sbin/shutdown,/sbin/reboot,/sbin/halt,/sbin/poweroff # User privilege specification tecmint ALL=(ALL:ALL) ALL, !SHUTDOWN # Allow members of group sudo to execute any command %developers ALL=(ALL:ALL) ALL, !SHUTDOWN
Теперь попробуйте выполнить команды shutdown и reboot от имени обычного пользователя (tecmint).
Еще один способ - удалить разрешение на выполнение команд shutdown и reboot для всех пользователей, за исключением root.
# chmod o-x /sbin/shutdown # chmod o-x /sbin/reboot
Примечание: В systemd эти файлы (/sbin/shutdown, /sbin/reboot, /sbin/halt, /sbin/poweroff) являются всего лишь символьной ссылкой на /bin/systemctl:
# ls -l /sbin/shutdown # ls -l /sbin/reboot # ls -l /sbin/halt # ls -l /sbin/poweroff
Чтобы другие пользователи не могли запустить эти команды, вы просто удаляете разрешения на выполнение, как описано выше, но это не работает в systemd. Вы можете удалить разрешения на выполнение в /bin/systemctl. Это означает, что все остальные пользователи, кроме root, будут запускать только systemctl.
# chmod o-x /bin/systemctl