로컬 및 원격 서버에서 사용자, 소유권 및 권한을 설정하는 방법은 무엇입니까?

로컬 및 원격 서버에서 사용자, 소유권 및 권한을 설정하는 방법은 무엇입니까?

나는 지난 1년 정도 동안 Linux 운영 체제에 대해 배워왔지만 여전히 다양한 구성에 따라 권한이 어떻게 변경되는지에 대해 매우 혼란스러워합니다. 로컬 개발 환경을 설정하려고 하는데 프로덕션 VPS(CentOS)에서 파일/디렉터리 권한이 로컬 설정(Mint)과 다르게 작동하는 것을 발견했습니다.

원격 서버 파일 구조는 소유자 및 그룹에 대해 설정되었으며 myuser:myuserrwx 권한은 디렉터리에 대해 755, 파일에 대해 644로 설정되어 사이트 요구 사항을 잘 충족해야 합니다. 그러나 www-data:www-data로컬에서 작동하려면 일부 폴더의 소유권과 권한을 777로 변경 해야 했습니다 . myuser를 Apache 그룹에 추가했지만 문제가 지속됩니다.

이로 인해 내 로컬 쉘 사용자는 로컬 Apache 사용자와 다르지만 원격 시스템에서는 쉘과 Apache 사용자가 동일하다고 믿게 됩니다. 이 올바른지?

이러한 설정을 변경하면 보안에 미치는 영향이 걱정됩니다. 웹 서버에 쓰기 권한을 부여하면 안 된다는 글을 읽었습니다. 그러나 drupal에서는 "files"라는 파일 저장소 디렉터리에 있어야 합니다. myuser:myuser이는 원격 시스템 파일이 Apache 사용자인 경우에도 원격 시스템 파일이 소유되어 있음에도 불구하고 웹 서버가 여전히 쓰기 액세스 권한을 가지고 있음을 의미합니까?

그렇다면 이러한 사용자를 설정하는 방법은 어떻게 결정됩니까? 나는 Apache가 실행되는 사용자 및/또는 그룹을 변경할 것이라고 가정하고 있는데, 이를 수행하는 방법과 모범 사례를 설명할 수 있는 사람이 있습니까? 로컬과 원격에 동일한 규칙이 적용됩니까?

답변1

기본적으로 두 가지 다른 질문을하고 있습니다.

  1. 프로덕션 시스템을 미러링하기 위해 로컬 시스템에 대한 권한을 설정하는 방법은 무엇입니까?

    서버 구성을 알아야 합니다. 이 경우에는 httpdhttp 데몬(이 경우 Apache라고도 함)의 구성이 포함됩니다. 일반적으로 /etc/httpd또는 에 있습니다 /etc/apache. 또한 데몬이 어떤 자격 증명으로 실행되고 있는지 알아야 합니다. 그런 다음 똑같은 방식으로 로컬 권한을 설정할 수 있습니다.효과적으로같은 방식으로(즉, 사용자/그룹 이름은 다르지만 데몬이 파일을 요청할 때 액세스 권한은 동일함)

  2. HTTP 데몬에 대한 쓰기 액세스가 정상인가요?

    의지하다. 일반적으로 데몬을 적게 작성할수록 좋습니다. 반면에 대부분의 경우(정적/읽기 전용 콘텐츠를 제공하지 않는 한) 실현 가능하지 않습니다. 이 경우 시스템을 강화하는 방법에는 여러 가지가 있습니다.

    1. 문서 루트에 대한 읽기 액세스 권한만 갖고 필요한 경우에만 쓰기 액세스 권한이 있는 특수 사용자로 데몬을 실행합니다(확장 ACL 유틸리티 getfacl/가 setfacl여러분의 친구입니다). Linux에서는 다른 보안 모델(GRSecurity/SELinux/AppArmor/...)을 사용할 수도 있습니다.

    2. 올바르게 작성된 데이터 처리 - 허위 입력을 합리적으로 처리합니다. 이 경우"이유"방법"아무것도 쓰지 마세요".

    3. "프록시"를 통한 쓰기 액세스 - 실행 부분 포함(모델자주 사용되는MVC 패턴보안은 별도의 프로세스에서 손상되지 않습니다(단, 이점을 얻으려면 올바르게 구현되어야 함).

관련 정보