su non è un utente è programma per eseguire comandi/programmi successivi sotto un'identità alternativa di un altro utente rispetto a quello che esegue il comando. È molto simile a sudo al riguardo.
A meno che non venga specificato un altro utente, entrambi i comandi eseguiranno per impostazione predefinita il comando con l'identità alternativa di root utente, il superutente/amministratore.
La principale differenza tra su e sudo è quello:
surichiede di conoscere la password di quell'utente alternativo, dovesudorichiederà la password dell'utente che eseguesudocomando e richiede l'installazione in modo che l'utente sia autorizzato a eseguire i comandi/programmi richiesti.
(Quando root esegue su o sudo non è richiesta alcuna password.)
Come qualsiasi script init, il /etc/rc.local lo script viene eseguito dal root utente e non è necessario anteporre su o sudo ai comandi/programmi che devono essere eseguiti come root.
Potrebbe essere ancora necessario utilizzare su o sudo nei tuoi script init se quei comandi devono essere eseguiti non come root ma un altro account utente/di servizio...
su - oracle /do/something/as/oracle/user
Sì, tutti gli script ei programmi vengono richiamati direttamente da root.
Il /etc/rc.local file viene chiamato direttamente dal processo init.