In generale, un utente deve effettuare il login per eseguire un processo e diventarne il proprietario (ruid o euid)? Questo si applica a qualsiasi utente oa qualsiasi utente non root?
Ad esempio:
-
Nella sequenza di avvio di Linux, il kernel avvia il sistema init come primo processo, quindi il processo init esegue
login
in modo che ogni utente possa effettuare il login.
Il processo init è di proprietà diroot
, e fa l'utenteroot
effettuare il login prima di avviareinit
processi? Vedi Perché esiste un processo `systemd` di proprietà di ogni utente che ha effettuato l'accesso? -
Quando si utilizza
ssh
per eseguire un comando senza avviare una shell interattiva, dobbiamo prima accedere o non eseguire il comando?
Se non ho bisogno di accedere per eseguire un processo come proprietario, come posso farlo?
Grazie.
Risposta accettata:
No, non è necessario accedere per avviare un processo in esecuzione come un determinato utente. L'accesso è un costrutto dello spazio utente; al kernel non importa di questo. Ci sono molti esempi di questo; ad esempio, i lavori cron possono essere eseguiti come qualsiasi utente, senza che quell'utente abbia effettuato l'accesso.
Per rispondere alle tue domande specifiche:
- no, root non ha bisogno di accedere per avviare
init
processo, per fortuna (immagina di gestire una flotta di migliaia di server e milioni di VM altrimenti); - la connessione tramite SSH conta come accesso.