ACL(Posix ACL, MacOS의 ACL과 다를 수 있음)이 있는 경우

ACL(Posix ACL, MacOS의 ACL과 다를 수 있음)이 있는 경우

파일 소유자가 여러 그룹에 속해 있는 경우 ls -l표시할 그룹을 어떻게 결정합니까 ? 예를 들어 MacOS에서는 다음과 같습니다.

drwx------+  48 flow2k  staff             1536 Feb  5 10:11 Documents
drwxr-xr-x+ 958 flow2k  _lpoperator      30656 Feb 22 16:07 Downloads

여기서 두 디렉토리는 서로 다른 그룹( staff_lpoperator)을 보여줍니다. 이것은 무엇을 기반으로 합니까? 나는 두 그룹의 구성원입니다.

답변1

나는 이 문제가 그룹이 어떻게 작동하는지에 대한 오해에서 비롯된 것이라고 생각합니다. 나열된 그룹이 ls -l아닙니다.사용자속할 수도 있지만 그룹문서속합니다. 각 파일은 사용자와 그룹의 소유입니다. 일반적으로 사용자는 이 그룹에 속하지만 필수는 아닙니다. 예를 들어 내 사용자는 다음 그룹에 속합니다.

$ groups
audio uucp sparhawk plugdev

그러나 그룹에서는 그렇지 않습니다 cups. 이제 파일을 만들어 보겠습니다.

$ touch foo
$ ls -l foo
-rw-r--r-- 1 sparhawk sparhawk 0 Feb 23 21:01 foo

이것은 사용자가 소유하고 sparhawk있으며 라고도 알려진 나의 기본 그룹이기도 합니다 sparhawk. 이제 파일의 그룹 소유자를 변경해 보겠습니다.

$ sudo chown sparhawk:cups foo
changed ownership of 'foo' from sparhawk:sparhawk to sparhawk:cups
$ ls -l foo
-rw-r--r-- 1 sparhawk cups 0 Feb 23 21:01 foo

현재 파일을 소유하고 있는 그룹은 내가 속한 그룹이 아닌 것을 확인할 수 있습니다.

이 개념을 사용하면 파일 권한을 정확하게 조작할 수 있습니다. 예를 들어 X, Y, Z 멤버로 그룹을 만들고 세 멤버 간에 파일을 공유할 수 있습니다. X에는 ​​쓰기 권한을 추가로 부여할 수 있지만 다른 사람(그룹)에게는 읽기 권한만 부여할 수 있습니다.

답변2

기존 권한에서는 사용자가 속한 그룹 수에 관계없이 파일은 하나의 그룹에 속합니다.

파일이 생성될 때 그룹은 사용자의 기본 그룹으로 설정됩니다. 그런 다음 사용자는 이를 자신의 그룹으로 이동할 수 있습니다.

ACL(Posix ACL, MacOS의 ACL과 다를 수 있음)이 있는 경우

그러면 여러 그룹이 있을 수 있습니다. 그러나 ls는 첫 번째 그룹만 표시하고 mode는 그룹 마스크를 표시합니다. (혼란스러울 수 있습니다. ACL에 그룹 이름이 표시되면 더 좋을 것입니다.)

사용자는 첫 번째 그룹을 자신이 속하지 않은 그룹으로 변경할 수 없습니다. 그러나 보조 그룹 및 사용자 권한(모든 그룹 또는 사용자에 대해)을 추가할 수 있습니다.

이 작업을 수행하는 데에는 루트(sudo) 권한이 필요하지 않습니다.

관련 정보