디렉토리에서 ACL을 제거하고 일반적인 액세스 제어로 돌아가는 방법은 무엇입니까?


29

우리는 수퍼 유저 권한이없는 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'로 표시되는 권한 목록에서 더하기 부호 를 어떻게 지울 수 있습니까?


getfaclACL이 아님을 나타냅니다. 그러나을 ls보여줍니다 +. 매번 같은 파일을보고 있습니까? (이것은 일반적으로 저의 이유입니다)
ctrl-alt-delor

@richard 예, 확실히 같은 파일입니다.
Taiki Bessho

답변:


27

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

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아래에 설명 된대로 두 가지를 시도하십시오 .


이것은 내 파일을 만들었다 : d?????????이상하다
JREAM

1
업데이트 :이 그것을 해결 chmod -R a+rX자본 X
JREAM

@JREAM 어떤 Linux 시스템을 사용하십니까?
Taiki Bessho

나는 같은 d를 가지고 ?????? 우분투 16의 것. 위의 chmod로 수정되었습니다. 기묘한.
TonyG

3

홀수 ... 재현 할 수 없습니다 :

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

사실, 나는 우분투 서버 16.04.1에서 재생할 수 없습니다 ...
Taiki

마침내 더하기 기호를 삭제할 수 setfacl -bn foobar있었지만 n옵션 이 왜 효과가 있었는지 모르겠습니다 .
Taiki Bessho
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.