su n'est pas un utilisateur c'est programme pour exécuter les commandes/programmes suivants sous une autre identité d'un autre utilisateur que celui qui exécute la commande. Il est très similaire à sudo à cet égard.
À moins qu'un autre utilisateur ne soit spécifié, les deux commandes exécuteront par défaut la commande sous l'autre identité du root utilisateur, le superutilisateur/administrateur.
La principale différence entre su et sudo est-ce que :
sunécessite que vous connaissiez le mot de passe de cet autre utilisateur, oùsudodemandera le mot de passe de l'utilisateur exécutant lesudocommande et nécessite une configuration afin que l'utilisateur soit autorisé à exécuter les commandes/programmes demandés.
(Quand root exécute soit su ou sudo aucun mot de passe n'est requis.)
Comme tout script d'initialisation, le /etc/rc.local le script est exécuté par le root utilisateur et vous n'avez pas besoin de préfixer non plus su ou sudo aux commandes/programmes qui doivent s'exécuter en tant que root.
Vous devrez peut-être toujours utiliser su ou sudo dans vos scripts d'initialisation si ces commandes doivent être exécutées pas comme root mais un autre utilisateur/compte de service...
su - oracle /do/something/as/oracle/user
Oui, tous les scripts et programmes sont directement appelés par root.
Le /etc/rc.local le fichier est appelé directement par le processus init.