안녕하세요, Linux 사용자 여러분. 저는 데비안 11을 사용하고 있습니다. 여러 사이트가 있는 nginx 웹 서버를 실행하고 있습니다. 각 사이트의 루트 디렉터리는 특정 사용자가 소유합니다.내 목표는 한 사용자의 네트워크 파일을 다른 사용자에게 완전히 보이지 않게 만드는 것입니다.. user1
소유 /var/www/site1
하고 user2
소유하십시오 /var/www/site2
. user1
폴더가 존재하는 것을 볼 수 있지만 그 사람이 디렉터리에 site2
액세스하거나 그 안에 있는 파일에 액세스하는 것을 원하지 않습니다 .ls
디렉토리가 다른 사용자에게 완전히 불투명해지기를 원합니다.
먼저 해당 디렉터리의 권한을 으로 변경했는데 750
, 웹 서버 사용자가 www-data
해당 폴더의 내용에 접근할 수 없습니다. 그런 다음 읽기 액세스를 허용하도록 ACL을 설정했습니다 www-data
.
나의 (미친) 효과적인 단계:
chown -R user1: .
find . -type f -exec chmod 640 {} +
find . -type d -exec chmod 2750 {} +
setfacl -Rdm u::rwx,g::rx,o::0,u:www-data:rx . # this didn't set up ACLs for individual files, hence the next line
find . -type f -exec setfacl -m u::rw,g::r,o::0,u:www-data:r {} +
질문: 다른 사용자를 제한하면서 웹 서버가 폴더의 콘텐츠에 액세스하도록 허용하는 더 쉬운 방법이 있습니까? 아니면 제가 취한 것보다 더 쉬운 단계가 있습니까?
(참고: 사용자를 그룹 www-data
에 추가하려고 시도했고 user1
그 반대의 경우도 마찬가지였습니다. 그룹에 읽기 권한이 있고 nginx가 실행 중이더라도 user www-data www-data;
nginx는 여전히 폴더의 내용에 액세스할 수 없습니다...)