Mude o usuário para root e execute o resto do script

2

Eu altero o usuário para root e executo o restante dos comandos como root no shell script.

    
por Ahmed Vagher 19.02.2016 / 03:07

2 respostas

1

Gostaria de verificar se o atual uid é zero e, caso contrário, execute novamente o script como raiz, por exemplo,

[[ $UID = 0 ]] || exec sudo $0 "$@"

Por exemplo, fazer com que a segunda linha do script (após "#!/bin/bash" ) faça o que foi solicitado.

Se houver uma parte longa no começo em que o usuário original não foi necessário, faça isso com uma declaração if:

#!/bin/bash
if [[ $UID = 0 ]]
then
    : do privileged stuff
else
    : do unprivileged stuff
    exec sudo $0 "$@"
fi

O valor $UID é bash-específico (usado porque a pergunta foi marcada com bash ). Scripts mais portáveis usariam a saída de id .

    
por 19.02.2016 / 03:11
0

Você também pode usar o bit setuid.

    
por 19.02.2016 / 03:21