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
loginin modo che ogni utente possa effettuare il login.
Il processo init è di proprietà diroot, e fa l'utenterooteffettuare il login prima di avviareinitprocessi? Vedi Perché esiste un processo `systemd` di proprietà di ogni utente che ha effettuato l'accesso? -
Quando si utilizza
sshper 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
initprocesso, per fortuna (immagina di gestire una flotta di migliaia di server e milioni di VM altrimenti); - la connessione tramite SSH conta come accesso.