나는 지난 1년 정도 동안 Linux 운영 체제에 대해 배워왔지만 여전히 다양한 구성에 따라 권한이 어떻게 변경되는지에 대해 매우 혼란스러워합니다. 로컬 개발 환경을 설정하려고 하는데 프로덕션 VPS(CentOS)에서 파일/디렉터리 권한이 로컬 설정(Mint)과 다르게 작동하는 것을 발견했습니다.
원격 서버 파일 구조는 소유자 및 그룹에 대해 설정되었으며 myuser:myuser
rwx 권한은 디렉터리에 대해 755, 파일에 대해 644로 설정되어 사이트 요구 사항을 잘 충족해야 합니다. 그러나 www-data:www-data
로컬에서 작동하려면 일부 폴더의 소유권과 권한을 777로 변경 해야 했습니다 . myuser를 Apache 그룹에 추가했지만 문제가 지속됩니다.
이로 인해 내 로컬 쉘 사용자는 로컬 Apache 사용자와 다르지만 원격 시스템에서는 쉘과 Apache 사용자가 동일하다고 믿게 됩니다. 이 올바른지?
이러한 설정을 변경하면 보안에 미치는 영향이 걱정됩니다. 웹 서버에 쓰기 권한을 부여하면 안 된다는 글을 읽었습니다. 그러나 drupal에서는 "files"라는 파일 저장소 디렉터리에 있어야 합니다. myuser:myuser
이는 원격 시스템 파일이 Apache 사용자인 경우에도 원격 시스템 파일이 소유되어 있음에도 불구하고 웹 서버가 여전히 쓰기 액세스 권한을 가지고 있음을 의미합니까?
그렇다면 이러한 사용자를 설정하는 방법은 어떻게 결정됩니까? 나는 Apache가 실행되는 사용자 및/또는 그룹을 변경할 것이라고 가정하고 있는데, 이를 수행하는 방법과 모범 사례를 설명할 수 있는 사람이 있습니까? 로컬과 원격에 동일한 규칙이 적용됩니까?
답변1
기본적으로 두 가지 다른 질문을하고 있습니다.
프로덕션 시스템을 미러링하기 위해 로컬 시스템에 대한 권한을 설정하는 방법은 무엇입니까?
서버 구성을 알아야 합니다. 이 경우에는
httpd
http 데몬(이 경우 Apache라고도 함)의 구성이 포함됩니다. 일반적으로/etc/httpd
또는 에 있습니다/etc/apache
. 또한 데몬이 어떤 자격 증명으로 실행되고 있는지 알아야 합니다. 그런 다음 똑같은 방식으로 로컬 권한을 설정할 수 있습니다.효과적으로같은 방식으로(즉, 사용자/그룹 이름은 다르지만 데몬이 파일을 요청할 때 액세스 권한은 동일함)HTTP 데몬에 대한 쓰기 액세스가 정상인가요?
의지하다. 일반적으로 데몬을 적게 작성할수록 좋습니다. 반면에 대부분의 경우(정적/읽기 전용 콘텐츠를 제공하지 않는 한) 실현 가능하지 않습니다. 이 경우 시스템을 강화하는 방법에는 여러 가지가 있습니다.
문서 루트에 대한 읽기 액세스 권한만 갖고 필요한 경우에만 쓰기 액세스 권한이 있는 특수 사용자로 데몬을 실행합니다(확장 ACL 유틸리티
getfacl
/가setfacl
여러분의 친구입니다). Linux에서는 다른 보안 모델(GRSecurity/SELinux/AppArmor/...)을 사용할 수도 있습니다.올바르게 작성된 데이터 처리 - 허위 입력을 합리적으로 처리합니다. 이 경우"이유"방법"아무것도 쓰지 마세요".
"프록시"를 통한 쓰기 액세스 - 실행 부분 포함(모델자주 사용되는MVC 패턴보안은 별도의 프로세스에서 손상되지 않습니다(단, 이점을 얻으려면 올바르게 구현되어야 함).