Por que alguns comandos que normalmente não requerem sudo, requerem-no na sessão SSH

3

Existem comandos ( poweroff , reboot , etc.) no Linux que podem ser executados sem privilégios de root na sessão normal, mas precisam de privilégios de root se forem executados na sessão SSH. Eu gostaria de saber duas coisas:

  1. Qual é o propósito disso (por que)?

  2. Como isso é realmente implementado (como)?

por Hanlon 25.01.2018 / 19:48

1 resposta

4

Primeiro, observe que isso não é um comportamento universal. Nem todos os sistemas Linux são configurados dessa maneira e, na verdade, não posso nomear nenhuma distribuição que configure as coisas dessa maneira por padrão, sem fazer uma pesquisa séria. Na maioria dos casos, qualquer sistema Linux exigirá privilégios de root independentemente (isso é o que a maioria dos sistemas faz), ou permitirá que qualquer um em um grupo particular faça isso, ou permitirá que todos façam isso (embora isso seja raro, pois é um buraco de segurança bastante significativo, permitindo um ataque DoS trivial se um serviço de rede for comprometido).

Por quê?

Por que é bem simples, é muito fácil desligar o sistema acidentalmente remotamente quando alguém está tentando usá-lo. Ao exigir presença física no console (o que você está chamando de sessão normal) ou prova de autoridade sobre o sistema (autenticando via sudo para obter privilégios de root), o sistema está tornando muito mais difícil para tal situação acontecer. A implicação é que, estando fisicamente presente no sistema ou fornecendo credenciais raiz, você tem autoridade suficiente para que não importe se alguém está usando o sistema.

Como?

Isso é um pouco mais difícil de responder sem saber muito mais sobre o sistema em questão, mas alguns métodos vêm à mente:

  1. Você pode fazer alguns truques bem precisos com recursos do sistema de arquivos para permitir isso, mas é preciso refazer isso toda vez que os comandos forem atualizados.
  2. No caso de systemd, shutdown , reboot e poweroff são todos fornecidos pelo systemd e acabam sendo equivalentes a vários subcomandos systemctl . Por causa disso e do rastreamento de sessão feito por logind , deve ser possível impor restrições como essa facilmente.
por 25.01.2018 / 20:34

Tags