Quel utilisateur exécute les commandes définies dans /etc/rc.local?

13

Les commandes sont-elles /etc/rc.localexécutées supar défaut?
Dois-je préciser sudoavant chaque commande ou seront-ils exécutés suindépendamment?

SK '
la source

Réponses:

17

sun'est pas un utilisateur, c'est un programme pour exécuter des commandes / programmes ultérieurs sous une autre identité d'un autre utilisateur que celui qui exécute la commande. C'est très similaire à sudocet égard.

Sauf si un autre utilisateur est spécifié, les deux commandes exécuteront par défaut la commande sous l'identité alternative de l' rootutilisateur, le superutilisateur / administrateur.

La principale différence entre suet sudoest que:

  • su vous oblige à connaître le mot de passe de cet autre utilisateur, où
  • sudodemandera le mot de passe de l'utilisateur exécutant la sudocommande et nécessite une configuration pour que l'utilisateur soit autorisé à exécuter les commandes / programmes demandés.

(Lorsque rootfonctionne soit suou sudoaucun mot de passe est nécessaire.)


Comme tout script d'initialisation, le /etc/rc.localscript est exécuté par l' rootutilisateur et vous n'avez pas besoin préfixer soit suou sudoaux commandes / programmes qui doivent fonctionner en tant que root.

Vous devrez peut-être encore utiliser suou sudodans vos scripts d'initialisation si ces commandes doivent être exécutées non pas commeroot mais un autre compte utilisateur / service ...

su -oracle/do/something/as/oracle/user

HBruijn
la source
Que dois-je faire si je mets su - user /path/to/script.sh dans rc.local, et lors de son acquisition, il me demande le mot de passe utilisateur (et ferme ensuite le terminal). Comment faire pour ne pas me demander le mot de passe de l'utilisateur?
alonso s
10

Oui, tous les scripts et programmes sont directement appelés par root.

Le /etc/rc.localfichier est appelé directement par le processus init.

dmourati
la source
1
Alors, nous n'avons pas eu besoin d'ajouter des sudocommandes avant /etc/rc.local?
Benyamin Jafari