사용자는 자신이 소유한 폴더에 대한 쓰기 권한이 없습니까?

사용자는 자신이 소유한 폴더에 대한 쓰기 권한이 없습니까?

나는 작업 중입니다 Debian10 with php8 fpm + apache2. 그룹을 사용하여 새 사용자를 생성했으며 username:username이 사용자의 홈 디렉터리를 다음 위치에 설정했습니다.

/home/username/www

물론 파일이 안에 있을 때 www-data가 되기 전에 chmod -R모든 폴더와 파일을 에 저장했습니다.username:username/var/html

그래서 기본적으로 캐시 폴더를 쓰려고 하는 작은 스크립트가 있지만 폴더를 사용자 이름:사용자 이름으로 chmod할 때 작동하지 않습니다. 폴더를 www-data로 chmod하는 경우에만 작동합니까?

캐시 폴더 chown 755 , 소유자가 www-data아닌 경우에는 잘 작동합니다.username

username다음과 같은 쓰기 권한을 허용하는 것이 가능합니까 www-data?

추신: 사용자 이름은 실제 사용자 이름의 예입니다.

답변1

가능한보안상의 이유로 읽기 전용 액세스 권한을 갖고 필요한 경우에만 쓰기 액세스 권한을 부여하는 username동시에 제어할 수 있는 접근 방식입니다 .www-data

  • username소유자 및 www-data그룹 으로 설정

    chown -R username:www-data /home/username/www
    
  • 소유자에게는 전체 액세스 권한(읽기/쓰기/실행: 7)을 부여하고 그룹에는 읽기 전용 액세스 권한(읽기/실행: 5)을 부여합니다. 여기 그룹 Other에는 액세스 권한이 없습니다(0).

    chmod -R 750 /home/username/www
    
  • www-data필요한 곳에 쓰기 액세스 권한을 부여하십시오 .

    chmod -R 770 /home/username/www/path/writable/by/webserver
    

웹서버에서 생성된 파일은 자체적으로 완전히 소유되지만( www-data:www-data) 디렉터리 소유자( username)는 여전히 해당 파일을 이동할 수 있습니다.

답변2

기본적으로 PHP-FPM을 설치하면 사용자로 실행되는 단일 풀이 설치됩니다 www-data. user및를 올바른 사용자 group로 변경하면 /etc/php/8.0/fpm/pool.d/www.conf스크립트가 사용자로 실행되며 www-data쓰기 권한이 필요하지 않습니다.

구성에는 기본적으로 다음 두 줄이 있습니다.

user = www-data
group = www-data

해당 줄을 다음으로 바꾸십시오.

user = username
group = username

FPM 데몬 다시 시작

service php8.0-fpm restart

관련 정보