Ao escrever um script de shell, no qual alguns, mas nem todos os comandos, precisam de privilégios de superusuário, devo
adicione sudo aos comandos que precisam de privilégios de superusuário e execute o shell script sem sudo, ou
não adicione sudo aos comandos que precisam de privilégios de superusuário, mas execute o shell script com sudo?
Na segunda maneira, só precisarei fornecer minha senha uma vez, mas todos os comandos no script serão executados com privilégios de superusuário, incluindo os comandos que não precisam.
Na primeira maneira, talvez eu precise fornecer minha senha várias vezes para diferentes comandos sudo, enquanto os privilégios de superusuário são concedidos apenas aos comandos que precisam deles.
Por questões de segurança, a primeira maneira é melhor. Por conveniência, o segundo caminho é melhor.
Eu tenho pensado em adotar o primeiro caminho. Portanto, tenho que lidar com a inconveniência de fornecer minhas senhas para vários comandos sudo no shell script.
-
Um script bem escrito detectaria se estava sendo executado com as permissões corretas e não chamava o sudo, mas há muitos scripts ruins
Então, devo usar o segundo caminho? Se então,
como posso escrever "o script detectaria se estava sendo executado com as permissões corretas e não chamava o sudo"?
como posso melhorar sua segurança para evitar o problema de conceder privilégios de superusuário a comandos que não precisam deles ao executar o script com sudo?
- Essa abordagem simples teria o melhor de ambas as abordagens: adicione sudo a comandos que apenas precisam dela e execute o script com ou sem sudo, dependendo de eu querer conveniência ou segurança? Essa abordagem tem algum problema?
Obrigado.
sudo
tinha um cache de credenciais padrão. Isso está desativado na sua plataforma?