디렉터리에서 ACL을 제거하고 일반적인 액세스 제어로 되돌리려면 어떻게 해야 합니까?

디렉터리에서 ACL을 제거하고 일반적인 액세스 제어로 되돌리려면 어떻게 해야 합니까?

우리는 FreeBSD 10.3 호스팅 서버를 사용하고 있으며 슈퍼유저 권한이 없습니다. 우리 회사의 웹 페이지는 apache2를 실행하는 서버를 사용합니다. 우리 페이지의 이전 관리자가 해당 디렉터리에 ACL 권한을 설정한 것 같은데 우리는 이를 제거하고 싶습니다. 디렉토리 이름이 이라고 가정합니다 foobar.

이제 결과 ls -al foobar는 다음과 같습니다.

drwxrwxr-x+   2 myuser  another_user   512 Nov 20  2013 foobar

그리고 권한은 다음과 같습니다.

[myuser@hosting_server]$ getfacl foobar
# file: foobar/
# owner: myuser
# group: another_user
user::rwx
group::rwx
mask::rwx
other::r-x

여기서는 ACL 권한과 권한 목록 끝에 있는 더하기 기호를 제거하려고 합니다. 그래서 우리는 그랬어요

setfacl -b foobar

ACL에 의해 관리되는 특수 권한은 제거되지만 더하기 기호는 제거되지 않습니다 +.

+우리의 질문은 "ls -al foobar"에 표시된 것처럼 권한 목록에서 더하기 기호를 제거하는 방법입니다 .

답변1

우리의 문제는 다음을 사용하여 해결되었습니다.

setfacl -bn foobar

핵심은 -n 옵션을 사용하여 디렉토리에서 디렉토리도 제거해야 한다는 것입니다... aclMask의 매뉴얼 페이지는 setfacl다음과 같습니다.

 -n      Do not recalculate the permissions associated with the ACL mask
         entry.  This option is not applicable to NFSv4 ACLs.

이 옵션이 왜 작동하는지 잘 모르겠지만 작동합니다...


d?????????위의 해결 방법을 수행한 후 권한을 얻으면 아래 두 가지 설명을 시도해 보세요 chmod -R a+rX.

답변2

재귀 옵션을 사용해 보세요.

setfacl -R -b foobar

-n 옵션이 필요하지 않습니다

관련 정보