Explicación sobre multiples su - linux, unix, pid, su

Estoy un poco confundido cuando ocurre un suceso múltiple. Digamos que sucede una situación como esta:

Fikrie su to root :

ps -ef | grep su:

root       15524  15388  0  10:15  pts/0  00:00:00 su root

Sé que el pid para ese su es 15524 y el padre pid es 15388. Pero cuando ocurre un su múltiple. Por ejemplo: esta situación.

Fikrie su root:
root su fikrie2:
fikrie 2 su root:

ps -ef | grep su:

root       15450  15388  0  10:15  pts/0  00:00:00 su root
fikrie2    15468  15458  0  10:15  pts/0  00:00:00 su fikrie2
root       15478  15476  0  10:15  pts/0  00:00:00 su root

Pensé que cuando rootea su en fikrie2, el primer pid será el ppid para el segundo su. De alguna manera, cuando intenté grep el proceso, esto me confunde. El ppid se convirtió 15458 en lugar de 15450 o 15388. Ninguno de los ppid está conectado / relacionado con el ppid o pid anterior. Traté de google y leer sobre process relationship en Advanced Programming in the UNIX Environment libro. ¿Alguien me puede dar una buena explicación sobre esto o tal vez un enlace que me ayude a entender más sobre la relación del proceso?

Estoy tratando de escribir un código para encontrar al usuario quesu en ese usuario. De todas las respuestas que busco en SO, solo ayudan a encontrar al usuario original, por ejemplo. fikrie Si ocurre la segunda situación, no pude obtener fikrie2 cuando accedí a root desde fikrie2. En cambio, obtengo fikrie, que es el usuario original. Mi idea original era utilizar la identificación de los padres para obtener el usuario, pero al hacerlo. Desde la línea de comandos. Esto realmente me confunde.

PS * Estoy intentando esto en la plataforma Unix. No sé nada acerca de Windows, pero si el ppid y el pid son diferentes entre Windows y Unix, indíqueme la dirección hacia Unix.

Respuestas

0 para la respuesta № 1

No estoy seguro, pero sospecho que el padreEl proceso que estás viendo es el shell al que llamaron. Cuando ejecute su archivo, ejecutará el archivo .profile que llamará a varios otros procesos y finalizará con el lanzamiento de un shell. Así que el proceso padre no será la invocación previa de su, porque ese no es el proceso que generó este. La cáscara hizo eso.


Más popular