이 답변에서 인용됨프로세스의 파일 시스템 사용자 ID와 유효 사용자 ID의 차이점에 대해서는 다음과 같이 말합니다.
FSUID는 파일 시스템 액세스에 사용되고 EUID는 다른 목적으로 사용됩니다.
이 "다른 것"은 무엇입니까? 소켓에 연결하는 것과 같은 시스템 호출만 생각할 수 있지만 파일 시스템 상호 작용 이외의 다른 것은 프로세스에 수퍼유저 권한이 필요합니다. 내 생각에 uids(및 gids)는 루트가 아닌 한 매우 효과적이기 때문에 거의 의미가 없습니다.
시스템 호출 외에 다른 것이 있나요? 또한 사용자/그룹 권한이 프로세스 간에 전송될 수 있는 신호에 영향을 미친다는 것을 알고 있지만 이것이 어떻게 작동하는지 잘 모르겠습니다. 공유 메모리 등과 같은 다른 유형의 프로세스 간 통신을 추가할 수 있을까요?
그리고 사용자에게 파일 실행 권한이 있는 경우 이를 실행하는 것은 "파일 시스템 권한"으로 간주됩니까? 실행 파일이 스크립트인지(스크립트를 한 줄씩 읽는 사용자 소유 프로세스를 실행하려면 SO가 필요하므로 파일 시스템 읽기 작업을 암시함)인지 바이너리인지(파일 내용이 직접 복사하여 붙여넣음)인지 여부에 따라 다릅니다. SO를 통해 RAM으로 추측해 보세요)? 파일에 실행 권한이 있지만 읽기 권한(바이너리 또는 텍스트 실행 파일)이 없으면 어떻게 되나요?
답변1
유효한 ID는 여러 가지 방법으로 사용됩니다.
신호는 다음에 설명된 대로 전송됩니다.죽이다(2):
For a process to have permission to send a signal, it must either
be privileged (under Linux: have the CAP_KILL capability in the
user namespace of the target process), or the real or effective
user ID of the sending process must equal the real or saved set-
user-ID of the target process. In the case of SIGCONT, it suf‐
fices when the sending and receiving processes belong to the same
session.
(예를 들어)에 설명된 대로 System V IPC 객체를 생성할 때메시지 제어(2):
If a new message queue is created, then its associated data struc‐
ture msqid_ds (see msgctl(2)) is initialized as follows:
msg_perm.cuid and msg_perm.uid are set to the effective
user ID of the calling process.
msg_perm.cgid and msg_perm.gid are set to the effective
group ID of the calling process.
다음에 설명된 대로 프로세스에 대한 nice 값을 설정할 때우선순위 설정(2):
EPERM A process was located, but its effective user ID did not
match either the effective or the real user ID of the call‐
er, and was not privileged (on Linux: did not have the
CAP_SYS_NICE capability). But see NOTES below.
마찬가지로 CPU 선호도를 설정할 때sched_setaffinity(2):
EPERM (sched_setaffinity()) The calling thread does not have
appropriate privileges. The caller needs an effective user
ID equal to the real user ID or effective user ID of the
thread identified by pid, or it must possess the
CAP_SYS_NICE capability in the user namespace of the thread
pid.