Devo usar o 'sudo' nos scripts que escrevo?

5

Estou configurando uma nova máquina (bem, na verdade, uma VM Ubuntu) e estou tentando escrever um script para configurar algumas coisas comuns que uso ao fazer isso (Git, curl, vim + janus).

Então meu script parece um pouco assim:

#setup
#!/bin/sh
sudo apt-get install git
sudo apt-get install curl
...

Não parece ótimo ter o 'sudo' misturado com o meu comando - isso é apenas o meu formigueiro de segurança. Parece que algo como o seguinte também pode funcionar:

sudo setup

Existe uma maneira melhor de fazer isso? Quais são suas regras práticas quando você escreve scripts e precisa de permissões elevadas?

    
por Jimmy Lyke 08.09.2011 / 02:44

3 respostas

10

Não há problema em usar várias chamadas 'sudo' em scripts.

Acho melhor executar os scripts inteiros como root, pois os riscos são limitados restringindo a elevação de privilégios aos comandos que realmente precisam deles.

    
por 08.09.2011 / 03:04
2

Eu fiz as duas coisas. Eu acho que os riscos de segurança são os mesmos: se alguém edita o script, você executará comandos indesejáveis. Portanto, verifique se as permissões de gravação estão restritas.

Eu costumo colocar sudo no script se não quiser que o script inteiro seja executado como root. Se o script for executado por um longo tempo (escrevo scripts para compilar o gcc ou outros grandes projetos), várias chamadas para sudo podem avisar o usuário mais de uma vez, o que pode ser irritante.

    
por 08.09.2011 / 03:12
0

Eu diria que não. Não, a menos que você tenha um bom motivo para isso. Eu trabalho em uma grande empresa financeira com práticas de segurança muito rígidas, então uma das coisas que fazemos é tirar o sudo de todos, e então devolvê-lo seletivamente.

Um dos IDs dos quais o retiramos é o root. Isso significa que se eu estou instalando um RPM com "sudo rpm ...", eu estou fazendo isso como root, o que é bom, mas se esse RPM em seus scripts tentar sudo, ele falhará - porque, novamente , nós bloqueamos até erradicar o sudo global.

Agora, se acontecer de nós termos recompensado seletivamente o sudo de volta para comandos específicos, pode acontecer que funcione se 100% das chamadas do sudo do RPM forem coisas que a raiz recebeu. Mas as chances disso são pequenas.

Nós tivemos problemas com o sudo dentro dos scripts RPM. Melhor apenas deixar de fora, eu acho. Ou pelo menos tenha em mente que existem empresas como a minha, onde você pode não saber quem tem o sudo para o quê, e mesmo o root pode não tê-lo.

    
por 09.01.2015 / 15:37