Mac에서 chmod를 사용하여 새 파일이 부모 디렉토리 권한을 상속 받도록하려면 어떻게해야합니까?

저는 Mac에 있습니다. 특정 폴더 내에서 생성되는 모든 새 파일 / 폴더가 상위 디렉토리의 권한과 동일한 권한 (그룹이 아닌 이미 관리 된)을 갖도록 만들고 싶습니다. Linux에서는 일반적으로 setfacl을 사용하지만 Mac의 chmod가 내가 원하는 것을 수행 할 수있는 것처럼 보입니다. chmod 매뉴얼 페이지를 읽었지만 여전히 원하는 것을 얻기 위해 명령의 형식을 올바르게 지정하는 방법을 알 수 없습니다.



답변

먼저, 진행 상황을 설명하는 약간의 배경 지식 : OS X의 파일에는 POSIX와 ACL의 두 가지 종류의 권한 설정이 적용될 수 있습니다.

파일은 항상 (거의, 거의 항상) 소유자, 그룹 및 기타로 구성된 POSIX 권한이 적용됩니다 (각각에 대해 읽기, 쓰기 및 실행의 일부 조합). POSIX 권한의 상속을 제어 할 수있는 방법은 없습니다. 새로운 항목은 항상 사용자가 만든 항목에 의해 소유되고 그룹 할당은 자신이있는 폴더에서 상속되며 액세스는 umask에 의해 결정됩니다 (거의 항상 : 소유자는 전체 액세스 권한을 가지며 그룹 및 기타 사용자는 읽기 전용 + 폴더 실행). 따라서 POSIX 권한은 수행하려는 작업에 작동하지 않습니다.

파일에는 ACL (액세스 제어 목록)이 적용될 수도 있습니다. 이 목록은 각각 사용자 또는 그룹에 적용되는 액세스 제어 항목 (ACE) 목록이며, 액세스 유형 (허용 / 거부 여부) 및 ACE를 복사해야하는지 여부를 지정합니다 (상세하게). 폴더 안에 생성 된 항목. 마지막 부분은 이것이 당신에게 유용한 부분입니다. 원하는 그룹, 원하는 액세스 유형 및 전체 상속을 지정하는 폴더에 ACE를 작성해야합니다.

OS X의 chmod는 + a, -a 등의 권한 옵션을 사용하여 ACE를 조작 할 수 있습니다. 원하는 것을 이해하면 그룹 이름과 폴더 경로를 대체하여 이것을 사용하여 ACE를 만듭니다.

chmod +a "group:examplegroup allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" /path/to/folder

상속은 “실시간”이 아니므로 ACE를 할당하기 전에 만든 항목에는 적용되지 않으며 다른 곳에서 만든 다음 폴더로 이동 한 항목에는 적용되지 않습니다. -R ( chmod -R +a ...) 을 사용하여 기존 컨텐츠에 적용 할 수 있습니다 . 폴더로 이동 된 항목에 대한 상속을 강제하는 방법 (Apple의 서버 관리 도구 제외)을 모르겠습니다.


답변

다음 -R과 같이 @gordon의 명령에 추가하십시오 .

chmod -R +a "group:_www allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" outdoors

-R옵션 의지 (언급 한 바와 같이 현재 ) :

재귀 : 파일 자체 대신 파일에 뿌리를 둔 파일 계층의 모드를 변경합니다.

파일 계층 구조를 변경하면 찾고있는 것 같습니다 (새 파일, 디렉토리 등).

Apple.SE post 에서 확인할 수 있습니다.이 게시물 은 여러분과 다소 비슷한 상황 (공유 디렉토리는 제외)을 다루고 있습니다 sudo.


답변

이 (-R)은 대부분의 사람들이 추구하는 것이 아닙니다. 대부분의 경우 최상위 디렉토리에서 ACL을 변경하고 포함 된 모든 오브젝트가 해당 서브 트리의 루트에 지정된 ACL에 따라 플래그를 상속하도록하는 마술을 선호합니다. 객체의 ACL이 정책에 따라 상속 된 ACE를 정렬하므로 훨씬 더 우아합니다.

그리고 네, 이것을하기 위해 파이썬 스크립트를 작성해야했지만 적절한 것을 찾지 못했습니다.


답변

chmod + ai, i = acl 규칙 상속


답변

Mac 에서는 PathFinder를 사용하여 ACL 및 POSIX를 쉽게 설정할 수 있습니다. Mac 서버에서 WordPress를 호스팅하는 경우 define('FS_METHOD', 'direct');플러그인을 설치하고 업그레이드해도 FTP 세부 정보를 요구하지 않도록 wp-config.php 에서도 설정해야합니다 .

따라서 기본적으로 기본 POSIX 권한을 유지하고 사용자 _www (그룹이 아님)를 ACL에 추가 한 다음 ACL 창에서 권한 전파를 클릭하십시오.