Ubuntu 및 웹 서버 권한

Ubuntu 및 웹 서버 권한

여러 번 게시된 질문을 하려고 합니다. 하지만 많은 가이드와 게시물을 읽었음에도 불구하고 여전히 의심스러운 부분이 있습니다.

sudo 권한(보조 그룹 "sudo")이 있는 사용자와 "웹 서버"에만 사용하려는 사용자가 있는 우분투 14.04 서버가 있습니다.

자세히 설명하겠습니다..

  • 내 웹 서버 사용자는 www-data 그룹(기본 그룹)의 일부인 "jack"입니다.

  • 가상 호스트는 Jack의 홈 디렉터리를 가리키며, 여기에 다양한 하위 도메인이 있는 하위 폴더가 포함된 "alias"라는 하위 폴더를 만들었습니다.

예.

/home/jack/public_html <-- main site
/home/jack/alias/forum <-- subdomain
/home/jack/alias/wiki  <-- subdomain
/home/jack/alias/cloud <-- subdomain

내가 알고 싶은 것은:

  • 첫 번째 질문-

잭이 사용자 그룹이 아닌 기본 그룹 www-data에 속하고 보조 그룹 www-data에 속한다는 것이 맞습니까?

  • 두 번째 질문-

친구가 웹 서버 폴더의 권한을 이렇게 설정하라고 제안했습니다.

chgrp www-data /home/jack/public_html
chmod g+rwxs /home/jack/public_html

별칭 폴더도 마찬가지입니다. 지금은 괜찮아 보이지만 문제가 있습니다 ...

  • 웹 서버에 파일을 로드하면 루트 권한은 다음과 같습니다.

잭:www-data0644

  • 파일이 www-data에 의해 생성된 경우(예: cms를 통해)

www-데이터:www-data0666

이제 FTP 등을 통해 파일을 수동으로 편집하면 권한이 변경되고 다양한 "네트워크 응용 프로그램"에 문제가 발생합니다.

어떻게 해결할 수 있나요?

답변1

첫 번째 질문: 어쨌든요. 이 작업을 수행하는 방법에는 여러 가지가 있습니다. 이를 수행하는 Linux 표준 방법은 귀하가 수행하는 것과 다르지만 귀하의 방식도 작동합니다. Linux의 표준처럼 Apache 계정으로 웹 서버를 실행하지 않는다는 사실은 적어도 다른 문제가 있을 수 있음을 시사하지만 첫 번째 질문의 끝은 아무 것도 가리키지 않습니다.

두 번째 질문: the_velour_fog가 제안한 대로 모든 네트워크 파일에 대한 권한을 설정해야 합니다. 하지만 저는 그 방법에 동의하지 않습니다.

chgrp -R www-data /home/jack/public_html

괜찮고 아무런 문제도 일으키지 않을 거예요. 하지만 다른 명령에 -R을 추가하는 것만으로는 충분하지 않은 것이 좋습니다.

chmod -R g+rwXs,o-w /home/jack/public_html

이 변형을 사용하면 실행 파일로 표시되지 않은 파일에 대한 실행 권한을 설정하지 않습니다. 또한 실제로는 그렇게 하고 싶지 않을 것이므로 모든 파일에 대한 다른 쓰기 권한도 제거합니다.

물론 이 chmod는 웹 서버가 권한 0666으로 파일을 생성하는 문제에 대한 임시방편일 뿐입니다. 귀하의 웹 서버에 문제가 있는 곳이 정확히 어디인지는 모르겠지만 어느 시점에서 귀하의 웹 서버 사용자가 비슷한 일을 했기 때문에 umask 0이를 umask 02.

잘못된 권한을 가지고 FTP를 사용하는 파일에 관해서는 그것이 FTP 서버의 문제인지, 아니면 파일이 전송되기 전에 생성되는 방식에 문제가 있는지 확실하지 않습니다. 이러한 파일은 설정된 세션에서도 생성되어야 하지만 적용되는 동안 생성 umask 02될 수도 있습니다 . umask 022( umask 22기술적으로 앞의 0은 독자에게 숫자가 8진수임을 상기시켜줍니다. Umask는 어쨌든 이를 8진수로 구문 분석하지만 이를 잊어버리기 쉽습니다.)

권한 문제가 FTP 서버와 관련된 경우 문제를 해결하기보다는 FTP로 전환하는 것이 좋습니다. FTP는 매우 안전하지 않은 프로토콜이기 때문입니다 scp. sftp2019년의 주요 가치는 익명 전송을 허용하지만 웹 서버를 사용하여 익명으로 파일을 가져올 수 있으며 웹 서버 계정에 익명으로 가져오거나 푸시하고 싶지 않을 것입니다. 설치되어 있고 프로세스가 실행 중이면 scpUbuntu 서버에서 둘 다 사용할 수 있습니다.sftpsshsshd

관련 정보