내가 아는 한, Unix 파일 권한에는 다음이 있습니다."사용자", "그룹" 및 "월드" 옥텟. 논의를 위해 setuid/sticky 비트가 존재하지 않는다고 가정합니다.
다음 예를 고려하십시오.
$ echo "Hello World" > strange
$ chmod 604 strange
$ ls -l strange
-rw----r-- 1 mrllama foo 12 Apr 13 15:59 strange
john
내 그룹의 구성원인 다른 사용자가 있다고 가정해 보겠습니다 foo
.
- John은 이 파일에 대해 어떤 권한을 갖고 있나요?
- 시스템에 가장 구체적인 권한 일치가 있습니까(예: John은 소유자는 아니지만 그룹에 속하므로
foo
"그룹" 옥텟의 권한을 사용합니다)? - ...또는 그에게 적용되는 가장 느슨한 옥텟을 따르나요(즉, John은 "그룹"과 "세계"에 대한 기준을 충족하므로 둘 중 더 느슨한 옥텟을 따릅니다)?
보너스 질문:
- 권한으로 변경되면 어떻게 되나요
642
? John은 읽기만 할 수 있나요, 쓰기만 할 수 있나요, 아니면 둘 다 할 수 있나요? - 이런 이상한 권한을 부여할 이유가 있나요
604
?
답변1
Unix 스타일 권한을 사용하여 액세스를 결정할 때 현재 사용자를 먼저 파일 소유자, 그 다음 그룹과 비교하고 적용되는 권한은 일치하는 첫 번째 구성 요소의 권한입니다. 따라서 파일 소유자는 소유자의 권한(및 해당 권한만)을 갖고, 파일 그룹의 구성원은 그룹의 권한(및 해당 권한만)을 가지며, 다른 모든 사람은 "다른 사용자" 권한을 갖습니다.
그러므로:
- John에게는 이 파일에 대한 권한이 없습니다.
- 가장 허용적인 일치가 아닌 가장 구체적인 권한 일치가 승리합니다(액세스 권한은 누적되지 않음).
- 권한이 있으면
642
John은 파일을 읽을 수 있습니다. - 권한이 부여되는 이유는 다음과 같습니다. 예
604
: 이렇게 하면 그룹을 제외할 수 있어 어떤 경우에는 편리합니다.students
액세스할 수 있는 학생 파일을 제외한 모든 사람을 위해 교직원이 그룹을 만들 수 있는 그룹이 있는 학술 시스템에서 본 적이 있습니다.
root
파일에 정의된 권한에 관계없이 모든 콘텐츠에 액세스할 수 있습니다.
보다 복잡한 액세스 제어를 위해서는 다음을 살펴봐야 합니다.SELinux그리고POSIX ACL. (특히 SELinux는 root
액세스할 수 있는 항목을 제한할 수도 있습니다.)
답변2
john
uid가 없다고 가정하면 0
그룹 의 구성원 john
이므로 권한이 없으며 john
그룹이 일치하므로 권한 확인에서 월드 비트를 고려하지 않습니다. (출처: "Advanced 프로그래밍 in Unix Environments", Chapter 4, Part 1st 에디션 5(80페이지)에서는 동일한 이유로 이러한 비트가 적용 642
됩니다 . 매우 드물지만 자신의 그룹의 다른 구성원이 보기를 원하지 않는 콘텐츠에 적합할 수 있습니다.4
604