ACL 권한이 있는 디렉터리에서 파일을 삭제할 수 없습니다.

ACL 권한이 있는 디렉터리에서 파일을 삭제할 수 없습니다.

삭제 권한을 얻기 위해 ACL에서 멈췄습니다.

내 SSH 기본 사용자는 ddnapache 사용자 입니다 www-data.

다음 명령을 다음과 같이 설정했습니다 setfacl.

setfacl -m u:www-data:rwx,u:ddn:rwx shared/web/cache
setfacl -Rdm u:www-data:rwx,u:ddn:rwx shared/web/cache

하지만 find 명령을 사용하여 이 폴더의 일부 파일을 삭제하려고 하면 권한이 거부되었습니다.

$ find shared/web/cache/ -type f -atime +70 -delete
find: cannot delete `shared/web/cache/e/f/7/d/7/ef7d7d26367b934f6965b6492b7183058669c80f.jpeg': Permission denied
find: cannot delete `shared/web/cache/f/e/7/f/0/fe7f09691670a1762c925d705135dc455752fb85.png': Permission denied
find: cannot delete `shared/web/cache/f/b/9/d/7/fb9d77e331ff45de1468ac584fa57e0c3aa6477a.png': Permission denied
find: cannot delete `shared/web/cache/f/1/e/f/9/f1ef953fde22f5d60f93dcc178130a894c2878f0.png': Permission denied
find: cannot delete `shared/web/cache/f/0/c/2/1/f0c21c21ae7f95d712dbe2c9255429022e33f31f.jpeg': Permission denied
find: cannot delete `shared/web/cache/2/f/8/f/7/2f8f78653021fffb99817b6a48c4d629a7de0aa6.png': Permission denied
find: cannot delete `shared/web/cache/2/f/9/d/7/2f9d7d22832a3517598bb61df2572869c30f7630.png': Permission denied

간단한 rm 명령에서도 동일한 오류가 발생합니다.

해당 파일 중 하나에 대한 ACL 정보를 얻으려고 하면 다음과 같습니다.

$ getfacl shared/web/cache/e/f/7/d/7/ef7d7d26367b934f6965b6492b7183058669c80f.jpeg
# file: shared/web/cache/e/f/7/d/7/ef7d7d26367b934f6965b6492b7183058669c80f.jpeg
# owner: www-data
# group: www-data
user::rw-
user:www-data:rwx       #effective:rw-
user:ddn:rwx            #effective:rw-
group::r-x          #effective:r--
mask::rw-
other::r--

그리고 마지막 폴더는 다음과 같습니다.

$ getfacl shared/web/cache/e/f/7/d/7/
# file: shared/web/cache/e/f/7/d/7/
# owner: www-data
# group: www-data
user::rwx
user:www-data:rwx       #effective:r-x
user:ddn:rwx            #effective:r-x
group::r-x
mask::r-x
other::r-x
default:user::rwx
default:user:www-data:rwx
default:user:ddn:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

setfacl 명령에서 중요한 옵션을 놓친 것 같습니다. 이 문제가 이미 발생했나요? 어떻게 해결하나요?

감사해요.

답변1

ACL 권한을 디렉토리에 반복적이고 효과적으로 설정하기 위한 것입니다. 아래 명령어를 순서대로 사용해야 합니다.

setfacl -Rdm u:www-data:rwx,u:ddn:rwx shared/web/cache

(향후 파일에만 적용됩니다)

setfacl -Rm u:www-data:rwx,u:ddn:rwx shared/web/cache

(기존 파일 및 디렉터리)

관련 정보