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.
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?
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.
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.