Como evito o acesso ao desligamento, mas não à reinicialização?

Como evito o acesso ao desligamento, mas não à reinicialização?

Eu tenho um PC Ubuntu rodando como um servidor plex. Como faço para que ninguém possa desligar o computador, mas apenas permitir que o usuário reinicie a máquina? Eu sei que é possível no Windows, mas só estou me perguntando se é possível no Ubuntu.

Responder1

A maneira mais eficaz de fazer isso seria mascarar o alvo de desligamento assim:

sudo systemctl mask poweroff.target

Agora será impossível para qualquer pessoa desligar a máquina, a menos que mantenha pressionado o botão liga/desliga ou desconecte fisicamente a máquina da energia.

A reinicialização não é afetada por esta máscara.


Caso você precise desligar a máquina no futuro para manutenção ou substituição de hardware, você pode unmask:

sudo systemctl unmask poweroff.target

Responder2

Se você só precisa dar o poder de reinicialização para usuários não administradores,você pode adicionar uma entrada para eles em seu sudoersarquivo parareboot(e/ou systemctl reboot, dependendo do que você deseja que eles executem). Então eles poderão executar sudo reboot(e/ou sudo systemctl reboot).Esta resposta pressupõe que eles não tenham acesso asudo - ou seja, que são usuários normais, não administradores, que não fazem parte do wheelgrupo.

O sudoersarquivo reside em /etc/sudoers, mas vocênão deveriaedite-o diretamente. Em vez disso, você só deve editá-lo usando visudo. Você precisará ser root para editá-lo, então você executará o sudo visudo. O visudocomando irá verificar a sintaxe de suas edições, e você deve sempre usar isso para evitar quebrar sua configuração e evitarvocê mesmoobter acesso root no futuro.

Em seguida, você pode adicionar algo como as seguintes linhas ao seu sudoersarquivo:

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

onde usernameé o nome de usuário do usuário (ou %groupnamede um grupo) e onde os caminhos são os caminhos reais para os comandos em seu sistema (verifique com which, por exemplo, which reboot.).

Para mais informações, confiraman sudoers,man sudo, eman visudo.

informação relacionada