Existem consequências para executar 'sudo chmod u + s / sbin / shutdown'

2

Eu quero fazer isso para que o aplicativo gShutdown possa desligar o sistema quando eu não estiver lá para inserir uma senha. Mas eu li em fóruns que alterar comandos do linux com o chmod pode causar problemas em sistemas multiusuários.

Alguém pode explicar por que isso pode ser?

    
por TenLeftFingers 30.12.2011 / 00:04

1 resposta

4

Adicionar o bit setuid ao processo de desligamento permitirá que qualquer processo pertencente a qualquer ID de usuário encerre ou reinicie o sistema com atrasos arbitrários.

Embora seja improvável, também pode expor overflows de buffer que permitem que usuários sem privilégios façam mais do que isso. Com o setuid bit set, existe a possibilidade de que o comando possa ser invocado com uma entrada que faz com que o comando funcione mal de uma maneira útil para um invasor.

Mesmo se você tiver um sistema de usuário único, isso pode ser uma preocupação: se um invasor usa uma exploração que permite executar código sem privilégios no sistema, os programas setuid podem fornecer uma maneira de obter privilégios de superusuário.

Por outro lado, a API usada pela área de trabalho fornece ações muito mais limitadas (reiniciar agora, desligar agora, etc.) e permite que usuários sem privilégios as ativem em circunstâncias limitadas (o usuário é um usuário local ativo e não há outros logados no sistema). Se o aplicativo que você está usando tiver uma opção para usar essas APIs em vez de chamar diretamente o comando shutdown , isso seria preferível.

    
por James Henstridge 30.12.2011 / 06:13