En général, un utilisateur doit-il se connecter pour lancer un processus et en devenir propriétaire (ruid, ou euid) ? Cela s'applique-t-il à n'importe quel utilisateur ou à n'importe quel utilisateur non root ?
Par exemple :
-
Dans la séquence de démarrage de Linux, le noyau démarre le système init en tant que premier processus, puis le processus init exécute
login
afin que chaque utilisateur puisse se connecter.
Le processus init appartient àroot
, et l'utilisateurroot
il faut se connecter avant de lancer l'init
processus? Voir Pourquoi y a-t-il un processus `systemd` appartenant à chaque utilisateur connecté ? -
Lors de l'utilisation de
ssh
pour exécuter une commande sans démarrer un shell interactif, faut-il d'abord se connecter ou ne pas exécuter la commande ?
Si je n'ai pas besoin de me connecter pour exécuter un processus en tant que propriétaire, comment puis-je faire ?
Merci.
Réponse acceptée :
Non, vous n'avez pas besoin de vous connecter pour démarrer un processus en cours d'exécution en tant qu'utilisateur donné. La connexion est une construction d'espace utilisateur; le noyau ne s'en soucie pas. Il existe plusieurs exemples de cela; par exemple, les tâches cron peuvent s'exécuter sous n'importe quel utilisateur, sans que cet utilisateur soit connecté.
Pour répondre à vos questions spécifiques :
- non, root n'a pas besoin de se connecter pour lancer
init
processus, heureusement (imaginez gérer une flotte de milliers de serveurs et des millions de machines virtuelles autrement) ; - la connexion à l'aide de SSH compte comme une connexion.