Как запретить доступ к выключению, но не к перезагрузке?

Как запретить доступ к выключению, но не к перезагрузке?

У меня есть компьютер с Ubuntu, работающий как сервер Plex. Как сделать так, чтобы никто не мог выключить компьютер, а только разрешить пользователю перезагрузить машину? Я знаю, что это возможно в Windows, но мне просто интересно, возможно ли это в Ubuntu.

решение1

Наиболее эффективным способом сделать это будет замаскировать цель отключения питания следующим образом:

sudo systemctl mask poweroff.target

Теперь никто не сможет выключить машину, если не нажмет кнопку питания или не отключит ее от электросети.

Эта маска не влияет на перезагрузку.


Если в будущем вам потребуется остановить машину для проведения технического обслуживания или замены оборудования, вы можете unmask:

sudo systemctl unmask poweroff.target

решение2

Если вам просто нужно предоставить возможность перезагрузки пользователям, не являющимся администраторами,Вы можете добавить запись о них в свой sudoersфайлreboot(и/или systemctl reboot, в зависимости от того, что вы хотите, чтобы они запустили). Тогда они смогут запустить sudo reboot(и/или sudo systemctl reboot).Этот ответ предполагает, что у них нет иного доступа кsudo — т. е. что это обычные пользователи, не являющиеся администраторами и не входящие в группу wheel.

Файл sudoersнаходится по адресу /etc/sudoers, но выне должнаредактировать его напрямую. Вместо этого, вы должны редактировать его только с помощью visudo. Вам нужно быть root, чтобы редактировать его, поэтому вы запустите sudo visudo. visudoКоманда проверит синтаксис ваших правок, и вы всегда должны использовать это, чтобы не нарушить вашу конфигурацию и не допуститьсамполучение root-доступа в будущем.

sudoersЗатем вы можете добавить в свой файл что-то вроде следующих строк :

username ALL=(root): /usr/sbin/reboot
username ALL=(root): /usr/bin/systemctl reboot

где username— имя пользователя (или %groupnameгруппы), а где — фактические пути к командам в вашей системе (проверьте which, например, с помощью which reboot.).

Для получения более подробной информации посетитеman sudoers,man sudo, иman visudo.

Связанный контент