-rw-r--r--+에 대해 ACL을 올바르게 설정

-rw-r--r--+에 대해 ACL을 올바르게 설정

다음과 같이 새 파일에 대한 기본 ACL 권한을 설정할 수 있었습니다.

sudo setfacl -Rdm u:usernamehere:rwx /var/www/path/to/files

이는 모든 새 파일에 다음 권한을 부여하는 것으로 보입니다.

-rw-r-----+

대신 새 파일에 다음 권한이 부여되기를 바랍니다.

-rw-r--r--+

차이가 있다면 CentOS를 실행하고 있습니다.

이에 대한 도움을 주시면 감사하겠습니다.

감사해요!

답변1

먼저, 명명된 사용자 또는 그룹에 대한 ACL 항목이 있는 파일 ACL에는ACL 마스크해당 ACL 항목과 그룹 소유자 항목에 부여된 권한을 제한하는 항목입니다. 마스크 항목은 ls기존 권한 비트만 보는 기타 유틸리티에 대한 그룹 권한으로 표시됩니다.

따라서 을 ls표시하는 경우 -rw-r--r--+ACL 마스크는 입니다 r--. 이는 권한 ACL이 u:usernamehere:rwx로 작동함을 의미합니다 u:usernamehere:r--. 그것은 당신이 원하는 것이 아닐 수도 있습니다. 반면에 은 가 소유한 파일의 경우에도 u:usernamehere:rwx과 다릅니다 . 첫 번째는 마스크로 제한되는 명명된 항목이고, 두 번째는 파일 소유자에 대한 항목입니다.u::rwxusernamehere~ 아니다제한된.

마스크의 개념은 와 동등한 도구를 실행하면 chmod go-rwx소유자 외에는 누구도 파일에 액세스할 수 없게 만들 수 있다는 것입니다. 를 사용하여 마스크 항목을 제거할 수 있지만 setfacl -x m:: filename명명된 사용자 또는 그룹 항목이 없는 경우에만 작동합니다.

어떤 경우든 동일한 명령에 두 개 이상의 기본 항목을 추가할 수 있습니다. 그러면 파일 소유자가 권한을 얻고 rwx마스크가 로 설정되며 r--"기타"에 대한 권한이 다음으로 설정 되도록 기본 항목이 설정됩니다 r--.

$ setfacl -R -d -m u::rwx -m m::r-- -m o::r-- /path

g::항목은 어떤 경우에도 나타나기 때문에(아마도 권한 비트에서 가져온 값으로) 그룹 소유자에 대한 기본 ACL을 명시적으로 설정할 수도 있습니다( ). 예를 들어 여기에서는 그룹 소유자에 대한 항목이 마스크로 제한되므로 완전히 적용되지 않습니다.

default:user::rwx
default:group::r-x              #effective:r--
default:mask::r--
default:other::r--

디렉토리에 생성된 파일은 ls로 표시됩니다 -rw-r--r--+.


그런 다음 명명된 사용자가 말한 권한을 얻도록 하려면 마스크 필드를 생략하고 setfacl실제 ACL 항목에 사용한 권한을 기반으로 설정하면 됩니다.

setfacl -R -d -m u::rwx -m u:usernamehere:rwx -m o::r-- /path

이제 디렉토리에 생성된 파일이 , 및 에 ls표시 됩니다 .-rw-rw-r--+getfacl

user::rw-
user:usernamehere:rwx           #effective:rw-
group::r-x                      #effective:r--
mask::rw-
other::r--

x를 사용하여 파일을 생성한 이후로 마스크가 누락되었으며 touch권한을 사용하여 비트를 0666마스킹합니다 x.

관련 정보