sudo script - melhor prática?

3

Eu tenho um script em que alguns dos comandos precisam ser executados como sudo. Eu vi isso afirmou que executando sudo dentro de scripts é uma má idéia, e isso é melhor para executar o script inteiro como sudo (e, em seguida, possivelmente modificar sudoers por conveniência, como descrito aqui ).

Eu tenho pensado sobre isso, e não consigo realmente ver qualquer razão não para executar comandos sudo dentro de scripts. Supondo que o script e seu diretório são de propriedade de root e, portanto, não adulterados, não vejo nenhuma diferença, do ponto de vista da segurança. (E mesmo se fosse, rodar todo o roteiro como sudo não seria menos perigoso). Estou faltando alguma coisa aqui?

    
por SauceCode 19.09.2015 / 20:56

1 resposta

0

Executar sudo é uma má ideia porque você não sabe o que vai acontecer e se é realmente necessário:

  • Um prompt de senha será exibido? Se sim, quem vai digitar uma senha? Lembre-se: seu script pode ser executado em um shell por um humano, mas também pode ser executado em segundo plano, na inicialização, pelo cron ou em outras situações em que um terminal não está disponível.

  • O usuário digitará sua senha se ela vir o prompt? Pessoalmente, eu imediatamente paro os scripts me pedindo uma senha. Além disso, talvez eu nem perceba o aviso se o seu script produzir muitos resultados.

  • sudo está disponível e configurado? O usuário atual pode executar sudo ? A resposta a uma dessas perguntas pode ser "não", e nesse caso você deve permitir que o usuário escolha como fornecer ao seu script os privilégios necessários.

  • Tem certeza de que precisa ser superusuário? Talvez eu tenha configurado meu sistema para que seu script não precise de privilégios de root, neste caso, sudo é totalmente desnecessário e pode ser muito perturbador.

Por favor, deixe me decidir quais privilégios você precisa e como entregá-los a você.

A execução de sudo pode ser uma boa ideia se você for root e quiser eliminar seus privilégios. Por exemplo, você pode abrir um arquivo de propriedade do root e, em seguida, alternar imediatamente para nobody:nogroup por motivos de segurança. Ainda assim, o problema que sudo pode não estar disponível ou não ser configurado permanece.

    
por 05.02.2016 / 00:16