setuid VS 실행 권한 부여 설정

setuid VS 실행 권한 부여 설정

setuid가 어떻게 작동하는지 이해하려고 노력 중입니다. 지금까지 제가 이해한 바에 따르면 setuid가 적용된 파일을 실행하는 프로세스는 실제로 누가 실행했는지에 관계없이 파일 소유자가 해당 파일을 실행한 것처럼 실행됩니다. 하지만 왜 모든 사람에게 실행 권한을 설정하지 않는 걸까요? (결국 이것이 실제로 일어나고 있는 일이라고 생각합니다.) 아마도 여기서 분명한 것을 놓치고 있는 것 아닐까요?

답변1

예, 당신은 분명한 것을 놓치고 있습니다. cat(또는 ls, sed, awk, vi또는 기타 일반 프로그램)을 실행하면 해당 프로그램을 직접 실행하므로 프로그램/프로세스에는 사용자 권한이 적용됩니다. 예를 들어 setuid 프로그램을 실행하면 passwd프로세스가 수정될 수 있도록 루트의 UID로 실행됩니다 /etc/shadow (자신의 UID로 실행하면 프로세스에 액세스할 수 없으며 읽을 수도 없습니다).

관련 정보