이 섹션에 따르면프로세스의 역할glibc 매뉴얼:
A process also has a real user ID which identifies the user who created the process ...
이를 확인하기 위해 다음 명령을 실행했습니다.
ps -eo cmd,ruid,euid | grep 'bash\|login'
그러면 다음과 같이 표시됩니다(lgd 계정의 uid는 1000입니다).
login --lgd 0 0
-bash 1000 1000
bash
login
작성자가 루트 사용자에 속하므로 값이 0인 ruid가 0이 아닌 이유는 무엇입니까 ? 제가 잘못 이해한 건가요, 아니면 login
bash의 ruid를 변경하는 것과 같은 함수를 호출하는 건가요?setuid()
답변1
login
실행하기 전에 사용자 ID를 변경했습니다 bash
. 섀도우 구현에서 다음을 볼 수 있습니다.여기, 그 전에는 더 많은 설정이 있습니다쉘이 시작되었습니다.
인용한 링크에 설명된 역할 차이는 실제로 setuid 프로그램과 관련이 있습니다. 복사본을 만든 id
다음 setuid로 설정하면 다른 값 id -u
이 id -ru
나타납니다. 후자가 프로세스를 시작한 사용자 ID입니다.