Normally, the system runs startup scripts with full root access by default, so you don't have to do anything.
Note that the script location depends on which
init package is used in your system.
For classic SysVinit, the start-up scripts are usually located in
/etc/init.d and symbolic links indicating their place in the startup/shutdown order are created in
/etc/rc<number>.d/ directories, where
<number> indicates the runlevel your script is supposed to run on. (A runlevel is sort of "overall system state": on RedHat-style systems, the default runlevel is 5 if you have GUI login enabled, and 3 otherwise. On Debian-style systems, it tends to be 3 always.)
Updating the symbolic links in
/etc/rc<number>.d/ can be tedious, so there is often a tool that can do it for you. The most common such tool is
chkconfig: it requires you to place some specially formatted comments at the beginning of your script (see
man chkconfig for details appropriate to your distribution). Then you can just place your script into
/etc/init.d and run
sudo chkconfig --add <your script name>.
If your system uses a newer replacement for SysVinit, like
systemd, they may include a SysVinit compatibility system so the above instructions may still apply; but you should consider learning the new ways too, since SysVinit is considered aged and less than optimal for modern multi-core systems.