De acordo com a seção A Persona de um Processo do manual glibc:
A process also has a real user ID which identifies the user who created the process ...
Então, para verificar isso, executei o comando:
ps -eo cmd,ruid,euid | grep 'bash\|login'
então mostre (o uid da conta lgd é 1000):
login --lgd 0 0
-bash 1000 1000
Por que o ruid do bash
valor 0 já que seu criador login
pertence ao usuário root? Eu entendi mal ou login
invoca funções como setuid()
alterar o ruid do bash?
login
realmente altera o ID do usuário antes de executarbash
. Na implementação de sombra, você pode ver isso aqui , com muitas configurações adicionais antes que o shell seja iniciado .A diferença de persona descrita no link que você mencionou é realmente relevante para programas setuid. Se você fizer uma cópia de
id
, faça-o setuidid -u
eid -ru
mostrará valores diferentes, sendo este último o id do usuário que iniciou o processo.