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.