Sono confuso su come sshd fa cadere i privilegi per le connessioni in entrata. Ho trovato questa pagina che è stata molto istruttiva ad alto livello:
Ma non capisco come il figlio di sshd privilegiato non abbia privilegi.
Nel mio debug sotto sshd privilegiato è 28389 e chiama clone () per creare 29266, il bambino senza privilegi. Quando uso ps per visualizzare l'UID / EUID dei pids 29268 è UID 1002 come previsto, ma 29266, il figlio non privilegiato di sshd, è zero, che sembra contraddire il link sopra il quale dice 'Questo si ottiene cambiando il suo uid / gid a un utente non utilizzato '.
woOt@host:~$ sudo strace -p 28389 -e trace=clone
Process 28389 attached - interrupt to quit
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fb7076d5a90) = 29266
^CProcess 28389 detached
woOt@host:~$
woOt@host:~$
woOt@host:~$ ps auxf | grep sshd
root 28389 0.0 0.0 49944 1244 ? Ss 18:15 0:00 /usr/sbin/sshd
root 29266 0.0 0.2 54576 3308 ? Ss 18:37 0:00 \_ sshd: test [priv]
test 29268 0.0 0.0 54576 1440 ? S 18:37 0:00 \_ sshd: test@pts/2
woOt@host:~$
woOt@host:~$
woOt@host:~$ ps -eo pid,uid,euid | egrep 'PID|28389|29266|29268'
PID UID EUID
28389 0 0
29266 0 0
29268 1002 1002
woOt@host:~$
woOt@host:~$
woOt@host:~$ grep 1002 /etc/passwd
test:x:1002:1003:,,,:/home/test:/bin/bash
woOt@host:~$
domanda modificata per illustrare correttamente:
figlio non privilegiato (2406) del processo di monitoraggio (2405)
root 2370 0.0 1.1 55592 5524 ? Ss 00:12 0:00 /usr/sbin/sshd -D root 2405 0.0 1.1 59008 5720 ? Ss 00:12 0:00 \_ sshd: test [priv] sshd 2406 0.0 0.6 56936 3072 ? S 00:12 0:00 \_ sshd: test [net]
e figlio privilegiato utente (2419) del processo di monitoraggio post-auth:
root 2370 0.0 1.1 55592 5524 ? Ss 00:12 0:00 /usr/sbin/sshd -D root 2405 0.0 1.1 60224 5756 ? Ss 00:12 0:00 \_ sshd: test [priv] test 2419 0.0 0.7 60224 3888 ? S 00:12 0:00 \_ sshd: test@pts/1
apprezza le risposte, grazie