나는 질문에 언급된 개념에 비교적 익숙하지 않으며 다른 소스에서 읽는 것은 더 혼란스럽습니다. 이것이 내가 지금까지 이해한 것입니다:
파일에 대한 권한을 얻으면 다음과 같이 표시됩니다.
-rwsr-xr-- 1 user1 users 190 Oct 12 14:23 file.bin
user2
이 그룹의 사용자가 를 users
실행하려고 한다고 가정합니다. setuid 비트가 설정되지 않은 경우 RUID와 EUID가 모두 UID와 동일하다는 file.bin
의미입니다 . 그러나 setuid 비트가 설정되었으므로 이는 이제 RUID가 UID와 동일 하고 EUID가 파일 소유자의 UID임을 의미합니다 .file.bin
user2
user2
user1
내 질문은 다음과 같습니다
- 파일 소유자와 의 차이점은 무엇입니까
root
?root
소유자와 동일한 권한이 있습니까 ? 아니면 권한 목록에 별도의 항목이 필요합니까root
? - RUID와 EUID의 차이점은 무엇입니까?
- 내가 아는 한, RUID와 EUID는 프로세스에서만 작동합니다. 그렇다면 왜 사용자 ID 값이 있습니까?
- RUID가 프로세스를 생성한 사용자이고 EUID가 현재 프로세스를 실행 중인 사용자라면 이 첫 번째 답변의 첫 번째 문장은 다음과 같습니다.질문나에게는 아무런 의미가 없습니다.
- setuid 비트의 기능을 올바르게 이해하고 있습니까?
답변1
대답은 다음과 같습니다.
root
언제나가득한파일 및 디렉터리에 액세스합니다. 파일 소유자는 일반적으로 해당 파일도 소유하지만 항상 그런 것은 아닙니다. 예를 들어:-r-xr----- 1 user1 users 199 Oct 14 18:42 otherfile.bin
user1
~이다소유자;그러나 그들은 단지읽다그리고구현하다, 하지만 root
여전히 전체 액세스 권한이 있습니다(읽고 쓰기) 파일에 추가합니다.
- RUID는실제 사용자 ID그리고 그것은 (거의) 결코 변하지 않습니다.
user2
시스템에 로그인 하면 실제 ID가 으로 설정된 쉘이 시작됩니다user2
. 쉘에서 시작하는 모든 프로세스는 실제 ID를user2
실제 ID로 상속합니다.
EUID는유효한 사용자 ID, 사용자 실행을 위해 설정됩니다.setuid 비트.
user2
실행 되면 file.bin
RUID는 이고 user2
, 시작된 프로세스의 EUID는 이다 user1
.
다음 상황을 사용해 보겠습니다 passwd
.
-rwsr-xr-x 1 root root 45396 may 25 2012 /usr/bin/passwd
user2
원할 때비밀번호를 변경하세요, 그들은 실행합니다/usr/bin/passwd
.RUID는 이지만
user2
프로세스의 EUID는 입니다root
.user2
passwd
변경하는 데 사용할 수 있습니다오직passwd
RUID는 내부적으로 확인되므로, 그렇지 않은 경우에는 실제root
사용자의 비밀번호로만 동작이 제한됩니다.프로세스가 필요
root
하므로 EUID가 필요합니다.passwd
쓰다및/etc/passwd
/또는/etc/shadow
.