Наши партнеры

UnixForum





Библиотека сайта 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

Еще один способ - удалить разрешение на выполнение команд 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