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