우리는 수퍼 유저 권한이없는 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’로 표시되는 권한 목록에서 더하기 부호 를 어떻게 지울 수 있습니까?
답변
우리의 문제는 다음을 사용하여 해결되었습니다.
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
아래에 설명 된대로 두 가지를 시도하십시오 .
답변
홀수 … 재현 할 수 없습니다 :
ls -l | grep foobar
drwxr-xr-x+ 2 maulinglawns maulinglawns 4096 jan 24 14:25 foobar
setfacl -b foobar/
ls -l | grep foobar
drwxr-xr-x 2 maulinglawns maulinglawns 4096 jan 24 14:25 foobar
불행히도 지금 테스트 할 BSD에 액세스 할 수 없습니다.
시스템 정보 :
Distributor ID: Debian
Description: Debian GNU/Linux 8.7 (jessie)
Release: 8.7
Codename: jessie