그룹 쓰기 권한을 상속하지만 ZFS ACL을 사용하여 OmniOS(Illumos)에서 파일을 실행하지 않습니다.

그룹 쓰기 권한을 상속하지만 ZFS ACL을 사용하여 OmniOS(Illumos)에서 파일을 실행하지 않습니다.

우리는 umask 027대부분의 시간을 운영합니다. 여러 사용자가 관련된 일부 디렉터리의 경우 ACL 상속을 사용하여 시뮬레이션하는 멋진 방법을 찾았습니다 umask 002.

이것이 내가 사용하는 명령입니다. 본질적으로 이것은 chmod 775상속입니다.

/usr/bin/chmod A=owner@:rwxpDaARWcCos:fd:allow,group@:rwxpDaARWcs:fd:allow,everyone@:rxaRcs:fd:allow $@`

$@업데이트할 파일 목록을 나타냅니다. 전체 ACL 구문을 지원하지 않는 것 같아서 /usr/bin/chmodOpenSolaris 버전을 사용하고 있습니다 ./usr/gnu/bin/chmod

매력처럼 작동하며 g+s그룹 이름을 상속받을 수도 있습니다. 하지만 다음 사항을 개선하는 데 도움이 필요합니다.

  1. (실행) 권한은 a+x디렉터리에만 적용되어야 하며 파일에 의해 자동으로 상속되어서는 안 됩니다.
  2. (읽기) 권한은 o+r파일에만 적용되어야 하며,아니요ls익명 사용자에 대한 기능을 비활성화하고 싶기 때문입니다 .

저는 OmniOS/Illumos 및 ZFS에 매우 만족하지만 안타깝게도 이는 일반적인 Linux ACL 구문과 매우 다른 Solaris ACL 체계를 사용합니다.

일종의 조건부 상속이 순서대로 적용됩니다. 파일은 한 가지 방식으로 상속되고 디렉터리는 다른 방식으로 상속됩니다. 가능합니까?

답변1

a+x(실행) 권한은 디렉터리에만 적용되어야 하며 파일에 의해 자동으로 상속되어서는 안 됩니다.

ACL(전체 목록)의 각 ACE(액세스 제어 항목)에 대해 상속 방법을 지정할 수 있습니다. 이 옵션은 다음에서 가져옵니다.Solaris 관리 설명서, OmniOS에도 적용됩니다(표 8.1 ~ 8.3).

  • 파일 상속(f):ACL만 상위 디렉터리에서 이 디렉터리의 파일로 상속됩니다.
  • dir_inherit(d):ACL만 상위 디렉터리에서 해당 디렉터리의 하위 디렉터리로 상속됩니다.
  • 상속(i)만:ACL은 상위 디렉터리에서 상속되지만 디렉터리 자체가 아닌 새로 생성된 파일이나 하위 디렉터리에만 적용됩니다. f/d/fd가 필요합니다.
  • 전파 없음(n):상위 디렉터리의 ACL만 디렉터리의 첫 번째 수준 콘텐츠로 상속되고, 두 번째 수준 이후 콘텐츠는 상속되지 않습니다. f/d/fd가 필요합니다.

동일한 사용자에 대해 여러 ACE를 추가하고 적용 시 결합되므로 원하는 효과를 얻을 수 있습니다(Windows ACL과 유사). 다른 모든 사람에게도 동일하므로 @owner로 단순화된 예:

/usr/bin/chmod A=\
    owner@:rw-p-D-ARWcCos:fd-----:allow, \
    owner@:--x---a-------:-d-----:allow, \
    [...]
$@

이것은 의미한다

  • 첫 번째 ACE는 디렉터리에 적용되며 a+x 권한을 제외한 모든 파일 및 디렉터리에 상속됩니다.
  • 두 번째 ACE는 디렉터리에 적용되며 모든 하위 디렉터리에 상속되지만 a+x 권한만 있는 파일에는 상속되지 않습니다.
  • 전체 ACL을 얻으려면 디렉토리의 두 줄을 "재정의"할 수 있습니다(그래서 저는 대시가 포함된 구문을 선호합니다. 무엇이 누락되었는지 알 수 있습니다).

귀하의 요구 사항을 충족하는지 테스트하지 않았습니다. 때로는 응용 프로그램에 따라 다르므로 테스트해야 합니다. 상속된 파일 및 디렉터리 ACL은 I마지막 위치에 큰 숫자로 표시됩니다 owner@:rw-p-D-ARWcCos:fd----I:allow.

익명 사용자에 대해 ls 기능을 비활성화하고 싶기 때문에 o+r(읽기) 권한은 디렉터리가 아닌 파일에만 적용되어야 합니다.

첫 번째 질문과 비슷하지만 반대입니다. 한 수준 상속만 원하는 경우 n( 와 유사)과 결합할 수도 있습니다 . find -maxdepth 1다시 말하지만, 간단한 플래그로는 충분하지 않고 고급 플래그( )도 필요할 수 있으므로 테스트할 때 주의하세요 ARWC. 또한 파일 및 디렉터리에 대한 옵션을 통해 ACL을 재귀적으로 적용할 수 있습니다 chmod -R. 이는 일부 경우에 바람직할 수 있습니다(예: 파일이 작성되면 해당 ACL은 파일 속성에 따라 고정되므로 소급하여 ACL을 수정해야 하는 경우). aclinherit) .


저는 OmniOS/Illumos 및 ZFS에 매우 만족하지만 안타깝게도 이는 일반적인 Linux ACL 구문과 매우 다른 Solaris ACL 체계를 사용합니다.

여러분의 관점에서는 이것이 불행해 보일 수도 있지만 ACL은 NFSv4 ACL과 매우 유사하므로 NFS 버전 4를 사용하기로 결정한 경우 아무것도 변경할 필요가 없습니다. 또한 Windows ACL과 매우 유사합니다(유일한 예외: SOlaris의 순서는 고정되어 있습니다(Windows의 순서는 항상 "허용"보다 먼저 "거부"이지만 "거부"를 사용하지 않아도 상관 없음). 이는 권한이 "허용"으로 설정된 각 Windows PC에서 권한을 편집할 수 있음을 의미합니다 Co. 이는 도메인 및 작업 그룹 전반에 걸쳐 작동하므로 Windows와의 상호 운용성은 이전에 사용된 해결 방법 Samba보다 좋습니다.

관련 정보