슈퍼유저 권한이 있다는 것은 실제로 무엇을 의미합니까?

슈퍼유저 권한이 있다는 것은 실제로 무엇을 의미합니까?

파일에 액세스하면 프로세스의 유효 사용자 ID에서 파일 권한이 확인됩니다. 그러나 사용자 ID를 변경하는 방법(예 setuid(): setreuid(), , ) seteid().

이러한 함수에서는 해당 함수를 호출하는 프로세스의 유효 사용자 ID(유효 사용자 ID는 루트)로부터 수퍼유저 권한도 확인됩니까?

답변1

"수퍼유저 권한이 있습니다"라는 표현은 다른 의미를 가질 수 있습니다. 맥락을 살펴봐야 합니다.

시스템 관리 측면에서 "수퍼유저 권한 보유"는 일반적으로 루트 계정에 대한 액세스가 허용된 사용자를 의미합니다. 예를 들어 sudo 구성을 통해 권한이 부여되었거나 루트 비밀번호를 알고 있기 때문입니다.

프로그래밍 환경에서 "수퍼유저 권한"은 일반적으로 UID 0으로 실행되는 프로세스를 의미합니다. 시스템 호출의 승인 여부를 논의할 때와 같이 특정 시점에 명시되면 일반적으로 대부분의 시스템 호출에 대해 유효 UID가 0임을 의미합니다. 영구적인 상태인 경우 이는 일반적으로 프로세스가 유효 UID를 0으로 설정할 수 있음을 의미하며, 여기에는 실제 또는 저장된 사용자 UID가 0인 프로세스도 포함됩니다.

특정 기능에 대한 정확한 요구 사항을 알고 싶다면 시스템의 해당 기능에 대한 설명서를 확인하세요(기본 커널에 따라 다름).

TL, DR: 상황이 중요합니다.

관련 정보