Permissões automáticas de sudo para o script de inicialização

0

Eu preciso executar um script na inicialização, o que eu entendo precisa ser feito na pasta init.d . Agora, esse script exige sudo permissions, ele solicita ao usuário a senha sudo ao ser executado normalmente.

É possível executar meu script de inicialização com permissões sudo concedidas automaticamente? Preciso dar ao usuário a permissão sudo sem senha? Idealmente, seria executado sem qualquer interação do usuário.

    
por Saeid Hashemi 23.04.2018 / 23:27

1 resposta

1

Normalmente, o sistema executa scripts de inicialização com acesso root completo por padrão, para que você não precise fazer nada.

Observe que o local do script depende de qual init package é usado em seu sistema.

Para SysVinit clássico, os scripts de inicialização geralmente estão localizados em /etc/init.d e os links simbólicos indicando o seu lugar na ordem de inicialização / encerramento são criados nos diretórios /etc/rc<number>.d/ , em que <number> indica o nível de execução do script para correr. (Um runlevel é uma espécie de "estado geral do sistema": em sistemas estilo RedHat, o nível de execução padrão é 5 se você tiver o login da GUI ativado e 3 caso contrário. Em sistemas no estilo Debian, ele sempre tende a ser 3).

A atualização dos links simbólicos em /etc/rc<number>.d/ pode ser entediante, por isso geralmente há uma ferramenta que pode fazer isso para você. A ferramenta mais comum é chkconfig : ele requer que você coloque alguns comentários especialmente formatados no início do seu script (veja man chkconfig para detalhes apropriados à sua distribuição). Então você pode simplesmente colocar seu script em /etc/init.d e executar sudo chkconfig --add <your script name> .

Se o seu sistema usa um substituto mais recente para o SysVinit, como upstart ou systemd , eles podem incluir um sistema de compatibilidade SysVinit para que as instruções acima ainda possam ser aplicadas; mas você deve considerar aprender os novos caminhos também, já que o SysVinit é considerado envelhecido e menos que o ideal para sistemas multi-core modernos.

    
por 24.04.2018 / 05:28