사용자와 프로세스 그룹 간의 관계

사용자와 프로세스 그룹 간의 관계

프로세스의 경우,

  1. 실제 사용자는 반드시 실제 그룹의 구성원인가요?

  2. 유효 사용자는 유효 그룹의 구성원이어야 합니까?

  3. 실제 사용자는 유효한 그룹의 구성원이어야 합니까?

  4. 유효 사용자는 실제 그룹의 구성원이어야 합니까?

중요한 경우 Linux에 대해 이야기하고 있습니다.

감사해요.

답변1

아니 아니 아니 아니:

uid(gid와 동일) 프로세스가 유효한 ID와 실제 ID, 기타 ID를 이동할 수 있음을 설명하겠습니다. 프로세스에 CAP_SETUID 기능이 있는 경우에만 ID를 임의로 설정할 수도 있습니다.

UID와 GID가 어떻게 구현되는지 살펴보겠습니다.

두 숫자는 모두 데이터베이스 테이블(파일)에 저장되며 두 테이블은 독립적입니다. UID와 기본 GID가 있습니다. 두 사람 모두 Richard에게 전화를 걸었지만 전화번호는 달랐습니다. 유일한 연결은 사용자 이름, UID 및 기본 GID를 나열하는 /etc/passwd입니다. /etc/group에는 그룹 이름, GID, UID가 나열됩니다.

대부분의 경우 이러한 관계는 로그인 시와 setgid가 호출될 때를 제외하고는 확인되지 않습니다.

효율성을 위해 꼭 필요한 것만 체크하세요.

  • 프로세스는 유효한 ID, 실제 ID, 기타(파일, 저장) 간에 ID를 이동할 수 있습니다.
  • 프로세스에 CAP_SETUID 기능이 있는 경우에만 ID를 임의로 설정할 수도 있습니다.

--

~에서매뉴얼 페이지setreuid(),

setreuid()호출 프로세스의 실제적이고 유효한 사용자 ID를 설정합니다.

실제 또는 유효 사용자 ID에 -1 값을 제공하면 시스템은 ID를 변경하지 않고 그대로 둡니다.

권한이 없는 프로세스는 유효 사용자 ID를 실제 사용자 ID, 유효 사용자 ID 또는 저장된 세트 사용자 ID로만 설정할 수 있습니다.

권한이 없는 사용자는 실제 사용자 ID를 실제 사용자 ID 또는 유효한 사용자 ID로만 설정할 수 있습니다.

실제 사용자 ID가 설정되거나 유효 사용자 ID가 이전 실제 사용자 ID와 다른 값으로 설정된 경우, 저장된 설정 사용자 ID는 새로운 유효 사용자 ID로 설정됩니다.

정확히 이와 마찬가지로 setregid()는 호출 프로세스의 실제적이고 효과적인 그룹 ID를 설정하며 위의 모든 내용은 "사용자"가 아닌 "그룹"에 적용됩니다.

관련 정보