Linux에서 사용자 권한이 어떻게 작동하는지 이해하려고합니다. 커널이 부팅되고 init루트로 시작 됩니다. 그런 다음 Init은 시작 스크립트를 실행 하고 다시 루트로 getty( agetty)를 실행 합니다. Agetty는 단지 사용자 이름을 읽고 login여전히 루트로 실행 한다고 생각합니다. 아직 흥미로운 것은 없습니다. 그러나 로그인 은 무엇을합니까? "로그인 시도"보다 더 나은 것을 찾을 수 없었습니다. 로그인에서 비밀번호가 일치하고 일반 사용자로 로그인하려고한다고 가정하면 사용자 ID는 어떻게 변경됩니까? 시스템 호출이 필요하다고 생각했지만 찾을 수 없었습니다.
또한 약 su. su'setuid'비트가 설정되어 있으므로 실행할 때 항상 루트로 실행됩니다. 그러나 일반적인 사용자로 로그인하라는 메시지가 표시되면 다시 사용자 ID를 변경해야합니다. 동일한 "마법"이 발생 su하거나 login사용자를 변경해야 할 때 올바르게 이해하고 있습니까? 그렇다면 왜 두 개의 다른 프로그램이 있습니까? 로그인을 실행할 때 추가로 심각한 비즈니스가 발생합니까?