소유자/루트와 RUID/EUID의 차이점

소유자/루트와 RUID/EUID의 차이점

나는 질문에 언급된 개념에 비교적 익숙하지 않으며 다른 소스에서 읽는 것은 더 혼란스럽습니다. 이것이 내가 지금까지 이해한 것입니다:

파일에 대한 권한을 얻으면 다음과 같이 표시됩니다.

-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.binuser2user2user1

내 질문은 다음과 같습니다

  1. 파일 소유자와 의 차이점은 무엇입니까 root? root소유자와 동일한 권한이 있습니까 ? 아니면 권한 목록에 별도의 항목이 필요합니까 root?
  2. RUID와 EUID의 차이점은 무엇입니까?
    • 내가 아는 한, RUID와 EUID는 프로세스에서만 작동합니다. 그렇다면 왜 사용자 ID 값이 있습니까?
    • RUID가 프로세스를 생성한 사용자이고 EUID가 현재 프로세스를 실행 중인 사용자라면 이 첫 번째 답변의 첫 번째 문장은 다음과 같습니다.질문나에게는 아무런 의미가 없습니다.
    • setuid 비트의 기능을 올바르게 이해하고 있습니까?

답변1

대답은 다음과 같습니다.

  1. root언제나가득한파일 및 디렉터리에 액세스합니다. 파일 소유자는 일반적으로 해당 파일도 소유하지만 항상 그런 것은 아닙니다. 예를 들어:

     -r-xr----- 1 user1 users 199 Oct 14 18:42 otherfile.bin
    

user1~이다소유자;그러나 그들은 단지읽다그리고구현하다, 하지만 root여전히 전체 액세스 권한이 있습니다(읽고 쓰기) 파일에 추가합니다.

  1. RUID는실제 사용자 ID그리고 그것은 (거의) 결코 변하지 않습니다. user2시스템에 로그인 하면 실제 ID가 으로 설정된 쉘이 시작됩니다 user2. 쉘에서 시작하는 모든 프로세스는 실제 ID를 user2실제 ID로 상속합니다.

EUID는유효한 사용자 ID, 사용자 실행을 위해 설정됩니다.setuid 비트.

user2실행 되면 file.binRUID는 이고 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.

  • user2passwd변경하는 데 사용할 수 있습니다오직passwdRUID는 내부적으로 확인되므로, 그렇지 않은 경우에는 실제 root사용자의 비밀번호로만 동작이 제한됩니다.

  • 프로세스가 필요 root하므로 EUID가 필요합니다.passwd쓰다/etc/passwd/또는 /etc/shadow.

관련 정보