FTP로 작성된 파일과 디렉토리에 Apache가 읽고 쓸 수있는 올바른 권한을 어떻게 부여합니까?


8

저는 Windows 사용자입니다.이 기본적인 Linux 질문에 대해 무지하게 변명 해주십시오.

Apache2와 vsftp 만 설치된 Linux (Debian) 서버를 찾고 있습니다.

무슨 일이 일어나고 있는지 누가 파일과 폴더를 소유하고 있으며 제대로 얻을 수없는 사람과 끊임없는 싸움을하고 있습니다.

이것은 지금까지 나의 이해입니다.

  • www-data 사용자는 / var / www / html 아래의 모든 파일이 폴더에 쓰기 위해 스크립트를 실행하므로 폴더와 파일의 소유권이 필요합니다. 물론 http를 통해 페이지를 제공 할 수 있어야합니다.
  • 내 ftp 사용자 ( ftpuser 라고 )는 새 파일을 업로드 할 수 있어야하기 때문에 / var / www / html 폴더 (재귀 적)에 쓸 수있는 권한이 필요합니다.

이를 염두에두고 ftpandwww 라는 그룹을 만들고이 폴더에 모든 폴더와 파일을 넣었 습니다 . 이것은 어느 정도 작동했습니다 ...

FTP 클라이언트를 사용하여 만든 새 폴더에 잘못된 권한이 있다는 사실을 제외하고는 거의 올바른 위치에 있지만 FTP 클라이언트에서 폴더를 변경하여 수정할 수는 있지만 www-data는 해당 폴더에 쓸 수 없습니다 그것들은 ftpuser 가 소유하고 있기 때문에 SSH로 들어가서 ftpandwww 그룹에 chown을 실행 시켜서 모두 행복합니다.

FTP에서 생성 한 모든 새 폴더가 올바른 권한 (774)을 갖도록 하고 ftpandwww 그룹 이 자동으로 소유 하도록하려면 (쓰기 권한이있는) 웹을 통해 업로드 및 제공 할 수있는 방법 매번 새로운 폴더와 파일?


답변:


10

웹 루트 디렉토리에서 SetGID 권한을 사용 하여 하위로 전파하십시오.

디렉토리에 SetGID를 적용하면 사용자의 기본 그룹 멤버쉽에 관계없이 해당 디렉토리의 모든 새 항목이 상위 그룹과 동일한 그룹으로 작성됩니다.

파일 시스템 객체에 SetGID를 적용하려면 chmod권한 코드 앞에 2를 사용하십시오.
(예 : 740 => 2740).

많은 Samba 공유에서 SetGID를 사용하므로 파일에는 항상 소유자 Users그룹이 있고 그룹의 모든 구성원이 파일을 읽을 수 있습니다 (보통 2750소유자 사용자 만 파일에 쓸 수 있도록 사용 합니다).

귀하의 경우 다음과 같이 실행하십시오 (XXX를 원하는 권한으로 대체하십시오).

sudo chown -R  root:ftpandwww /var/www
sudo chmod -R 2XXX /var/www 

그러면 새로운 파일과 폴더가와 같은 소유권으로 나옵니다 ftpuser:ftpandwww.

편집하다:

사용 사례에 따라 SetGID로 문제를 해결하기에 충분할 수 있지만 그룹 권한이 잘못되어 소유권이 올 바르기 때문에 한 사용자 또는 다른 사용자가 쓰기를 거부하는 문제가 계속 발생하면 최선의 방법은 파일을 생성하는 사용자 정의 UMASK .

데몬이기 때문에 사용자에 대해 UMASK를 설정하는 데 어려움이있는 경우 , 데몬 사용자의 UMASK 설정 옵션에서이 스레드를 확인하십시오 .

007그룹 구성원이 파일을 쓰고 삭제할 수 있고 비 소유자에게는 권한이 없도록하려면 마스크를 사용 하는 것이 좋습니다 .


고맙게도 모든 파일과 폴더 에이 소유권이 있다고 언급 할 때 이것을 시도 할 것입니다. 다시 감사합니다.
omega1

실제 소유자 사용자는 로컬 인증을 사용하지 않는 한 프로세스를 실행하는 사용자 일 것입니다 (단, 응용 프로그램에 전적으로 의존 함). 어느 쪽이든 귀하의 질문에 대한 답변은 귀하가 사용하기로 선택한 XXX에 따라 다릅니다. wwwdata와 ftpdata가 모두 같은 그룹에 있으므로 770을 지정하면 두 계정 모두 개체에 쓸 수 있습니다. 그러나 740을 주면 소유자 사용자 만 쓸 수 있지만 ftpandwww의 모든 구성원은 읽을 수 있습니다. 요점은 이러한 작업에 사용자 권한이 아닌 그룹 권한을 사용한다는 것입니다.
Frank Thomas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.