Execute o script bash inteiro como root ou use o sudo nos comandos que precisam dele?

3

Estou trabalhando em algum script de instalação no bash (em um Raspberry Pi executando o Stretch). Ele irá copiar os arquivos para /usr/local/bin e para o meu perfil de usuário e irá instalar alguns pacotes, se necessário. O script tem quase 2000 linhas e 20 a 30 comandos precisam de raiz.

Agora, minha pergunta é: devo executar o script inteiro com sudo ou apenas como usuário padrão e sudo apenas os comandos dentro do script que precisam de direitos de administrador?

    
por SBF 14.05.2018 / 21:12

2 respostas

1

Se você tiver certeza de que executar o script com sudo não causará nenhum dano (por exemplo, ele não criará novos arquivos que agora precisarão de root privileges, mas de outra forma não o faria), você deve executá-lo com sudo .

Se você sabe que existem alguns efeitos colaterais ou não tem certeza, faça o caminho seguro e use sudo exatamente onde você precisa.

    
por 14.05.2018 / 21:25
0

No cabeçalho do script, coloque isto:

#!/bin/bash

#Detects if script are not running as root... 
if [ "$UID" != "0" ]; then
   #$0 is the script itself (or the command used to call it)...
   #$* parameters...
   if whereis sudo &>/dev/null; then
     echo "Please type the sudo password for the user $USER"
     sudo $0 $*
     exit
   else
     echo "Sudo not found. You will need to run this script as root."
     exit
   fi 
fi
    
por 14.05.2018 / 21:34