파일 시스템 액세스 이외의 권한

파일 시스템 액세스 이외의 권한

이 답변에서 인용됨프로세스의 파일 시스템 사용자 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.

다른 예로는 다음 시스템 호출이 있습니다.제한사항(2)그리고버튼 컨트롤(2).

관련 정보