Como executar um desligamento de emergência sem o sudo?

3

O problema

Estou tentando permitir que um usuário específico, que está no grupo sudo , realize um desligamento de emergência usando o seguinte código:

echo 1 > /proc/sys/kernel/sysrq
echo o > /proc/sysrq-trigger

Note que isto é sem usando o comando sudo !

EDIT: Esqueceu de mencionar que ambos os arquivos, de propriedade de root:root , se recusam a permitir qualquer alteração de permissão ou proprietário, mesmo pelo usuário root .

Cenário Teórico

Um hacker compromete um sistema, que geralmente é executado sem supervisão, e obteve permissão para ler dados confidenciais. Em vez de permitir que o hacker continue, um script automatizado desliga a máquina (suponha que o hack foi detectado).

Embora não seja meu caso de uso exato, ele é semelhante o suficiente.

O que eu tentei

  • Criando um script bash para executar as duas linhas de código acima, dando root:sudo owners e adicionando uma linha a visudo para permitir que usuário específico para executar a tarefa sem precisar digitar a senha.

  • Tentou alterar o proprietário dos dois arquivos para root:sudo .

  • Tentou alterar as permissões dos dois arquivos de forma que o grupo root poderia escrever para eles.

A idéia é não "assar" a senha para sudo , o que me permitirá mudar regularmente sem esquecer de modificar outros arquivos (ou ter o processo que desliga o computador rodando com root privileges ). Agradecemos antecipadamente por sua ajuda.

    
por user3303504 19.06.2017 / 20:22

1 resposta

2

Minha opinião é mudar suas linhas para algo assim em seu script:

echo 1 | sudo tee /proc/sys/kernel/sysrq > /dev/null
echo o | sudo tee /proc/sysrq-trigger > /dev/null

E dê ao usuário específico acesso para executar o comando tee com esses argumentos sem precisar digitar a senha, algo como:

username ALL=(root:root) NOPASSWD: /usr/bin/tee /proc/sys/kernel/sysrq

Lembre-se de que não é possível redirecionar uma string para um arquivo que precisa de uma permissão específica usando > , isso significa algo como:

sudo echo hi > file
echo hi sudo >  file

não vai funcionar.

Ao mesmo tempo, você não pode simplesmente alterar o proprietário desses arquivos, pois /proc é um sistema de arquivos virtual gerenciado pelo Kernel.

    
por Ravexina 19.06.2017 / 20:34