o usuário não tem permissão de gravação nas pastas de sua propriedade?

o usuário não tem permissão de gravação nas pastas de sua propriedade?

estou trabalhando Debian10 with php8 fpm + apache2, criei um novo usuário com um grupo username:usernamee defini um diretório inicial para esse usuário localizado em

/home/username/www

é claro que tenho chmod -Rtodas as pastas e arquivos username:username, antes era www-data quando os arquivos estavam dentro/var/html

então basicamente eu tenho um pequeno script tentando escrever uma pasta de cache, mas não está funcionando quando eu chmod as pastas para username:username , só funciona se eu chmod as pastas para www-data ?

a pasta de cache chown 755 e funciona bem se www-datanão for de propriedadeusername

é possível permitir usernameuma permissão de gravação como www-data?

PS: nome de usuário é um exemplo do real

Responder1

Apossívelabordagem para permitir usernameo controle de coisas, embora www-datatenha acesso somente leitura por motivos de segurança e acesso de gravação somente quando necessário:

  • Definir usernamecomo proprietário e www-datacomo grupo

    chown -R username:www-data /home/username/www
    
  • Conceda acesso total ao proprietário (leitura/gravação/exec: 7) e acesso somente leitura ao grupo (leitura/execução: 5). O Othergrupo aqui não tem acesso (0).

    chmod -R 750 /home/username/www
    
  • Dê acesso de gravação www-dataonde for necessário:

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

Os arquivos criados pelo servidor web serão de propriedade total dele ( www-data:www-data), mas o proprietário do diretório ( username) ainda poderá movê-los.

Responder2

Por padrão, quando você instala o PHP-FPM, ele instala um único pool que é executado como www-datausuário. Se você alterar usere grouppara /etc/php/8.0/fpm/pool.d/www.confo usuário correto, seu script será executado como usuário e www-datanão precisará de permissões de gravação.

Sua configuração tem estas 2 linhas por padrão:

user = www-data
group = www-data

Substitua essas linhas por:

user = username
group = username

Reinicie o daemon FPM

service php8.0-fpm restart

informação relacionada