Eu tenho um script que executa três funções: A && B && C.
A função Bprecisa ser executada como superusuário, enquanto Ae Cnão.
Eu tenho várias soluções, mas nenhuma delas é satisfatória:
sudo o script inteiro:
sudo 'A && B && C'Parece uma má ideia executar
AeCcomo superusuário, se não for necessáriotorne o script interativo:
A && sudo B && CTalvez eu precise digitar minha senha, mas quero que meu script não seja interativo, pois cada função pode levar algum tempo e não quero que o script espere por mim. Bem, é também por isso que é um script, para que eu não precise assistir.
A solução estúpida:
sudo : && A && sudo -n B && CPrimeiro, parece estúpido fazer um não-op
sudoprimeiro, e também devo cruzar o dedo que A não vai demorar mais do que$sudo_timeout.Solução hipotética (gostaria que você me dissesse que existe):
sudo --store-cred 'A && sudo --use-cred-from-parent-sudo B && C'Isso solicitaria minha senha no início e, em seguida, usaria essas credenciais somente quando necessário.
Qual a sua opinião sobre tudo isso? Eu ficaria muito surpreso por não haver solução para esse problema, pois acho que é um problema bastante comum (e quanto a make all && sudo make install)
AeCpartes explicitamente usandosu -l some_non_priviliged_user. Sem problemas de tempo limite e sem privilégios para A e C. Não acho que 4 seja possível,sudoparece um "estado global" para um usuário.