Por qualquer motivo, não precisamos mais ser root (ou usar sudo
) para executar /sbin/shutdown
, /sbin/reboot
etc.
Parece que isso acontece porque esses executáveis agora são links simbólicos para os /bin/systemctl
quais lida com tudo como usuário normal.
No entanto, e se eu quiser shutdown
e reboot
exigir autenticação root novamente? Como posso conseguir isso?
pkaction | grep login1
para outras regras de interesse)sudo visudo
e verificando se há uma linha com o caminho para esses executáveis.Respostas:
Systemd, de fato, lidar com o
shutdown
,reboot
e outros comandos, e os privilégios padrão atribuídas são permissivos. Para mudar isso, você precisa criar uma regra do Polkit. Crie um.pkla
arquivo/etc/polkit-1/localauthority/50-local.d
(digamosconfirm-shutdown.pkla
) contendo:Os vários desligar, reiniciar, etc. comandos são, em termos polkit, ações em
org.freedesktop.login1
, por exemplo,org.freedesktop.login1.power-off
,org.freedesktop.login1.reboot
, etc. O problema específico aqui é a configuração padrão, que é em/usr/share/polkit-1/actions/org.freedesktop.login1.policy
:Observe que ele permite que o usuário ativo desligue, reinicie etc.
fonte
Você pode usar o
chmod
comandoSe você deseja dar acesso apenas ao root, pode escrever:
Se você deseja dar permissão à raiz e ao grupo sudo, pode escrever:
Se você deseja alterar o grupo do arquivo de sudo para outro (como um usuário ou administradores), digite:
Se você deseja reverter, execute:
Nota : você pode ter que usar
sudo
esse comando ou ter feito login na conta raizfonte
/bin/systemctl
), portanto, executar chmod / sbin / shutdown afetará todos os links apontando para as/bin/systemctl
quais as permissõesbin/systemctl
serão alteradas, conforme confirmado pelo comando $ll /bin/systemct
l -rwx ------ raiz 1 raiz 659.848 18 jan 16:04 / bin / systemctl *-rwxr-xr-x 1 root root 659848 Jan 18 16:04 /bin/systemctl
Como alterar as permissões de um link simbólico em um sistema Linux não altera as permissões do link, mas o arquivo para o qual ele aponta (pelo menos no Ubuntu). Eu acho que a maneira mais segura de fazer isso seria remover o link e recriá-lo com o umask necessário para obter o resultado desejado.
Outro post relacionado pode ser encontrado aqui
fonte
Você pode criar um script que verifique se o usuário está executando com permissões de root ou não.
Em seguida, ele executará o comando systemctl ou retornará um erro.
Fonte
fonte
Tente alterar suas permissões no terminal. Você pode executá-lo apenas por um determinado grupo, como roda ou administrador. Infelizmente (ou talvez felizmente), um arquivo pode ter apenas uma propriedade de grupo, então o chown simplesmente não funcionaria sozinho. Experimente "sudo chown root: wheel / sbin / shutdown" e depois "sudo chmod g + x / sbin / shutdown". Isso tornará o arquivo executável somente por root e admins (shudders) e sudoers serão solicitados a inserir suas senhas.
fonte