2011-04-14 3 views
5
유닉스

간부저장된 사용자 ID가 필요한 이유는 무엇입니까?

ID 파일의 소유자와 동일하지 않습니다 실제 사용자 및 설정 사용자 ID 비트가 켜져있는 경우, 유효 사용자 ID은 소유자의 파일로 변경되며, 저장된 사용자 ID는입니다.
유효 사용자 ID으로 복사 됨 저장된 사용자 ID exec.

왜 지금 저장된 사용자 ID가 필요한가요?

보안 문제가 있으십니까? 맞다면, 특히 어떤 경우인가?

+1

참조 http://stackoverflow.com/questions/205070/whats-the-deal-with-all-the-different-uids-a-process-can-have – Andy

답변

3

파일에 액세스하면 시스템은 프로세스의 유효 UID 및 GID 세트를보고 파일 사용 권한 (파일의 ACL)과 일치시킵니다.

파일을 만들 때 시스템은 파일을 만들 수 있는지 여부를 결정할 때 동일한 프로세스 값을 조사하지만 파일의 UID를 설정하기 위해 유효 UID를 사용하고 유효 GID 또는 디렉토리의 GID를 사용합니다 SGID 비트가 디렉토리에 설정되어 있거나 MacOS X에있는 경우).

access() 시스템 호출은 실제 UID와 실제 GID (실제 UID 및 GID 대신)가 파일에 액세스 할 수 있는지 여부를 확인합니다.

SUID (setuid) 프로그램이있는 경우 EUID를 사용하여 사용자가 액세스 할 수없는 파일에 액세스 할 수 있습니다. 그러나 사용자 대신 파일 (이를 실행하는 사람의 RUID)을 작성하려면 SUID 특권을 h 제하여 EUID가 RUID와 같아야합니다. 옛날에 한참 전에 SUID 권한을 떨어 뜨리면 유익하지 못했습니다. 너는 그것을 다시 얻을 수 없었다. 저장된 UID 값을 사용하면 다시 전환 할 수 있으므로 SUID 프로그램의 권한 관리를 단순화합니다.

8

저장된 사용자 ID를 사용하면 (실제 uid를 실제 ID로 전환하여) 권한을 삭제 한 다음 필요할 때만 유효 ID를 저장된 ID로 전환하여 권한을 취소 할 수 있습니다.

관련 문제