Permissões de arquivo PHP/Linux

Permissões de arquivo PHP/Linux

Posso fazer uma pergunta sobre permissão de arquivo. Eu configurei o servidor Ubuntu onde o Apache começou a rodar. Eu tenho um formulário de upload de php simples e posso fazer upload de arquivos para /var/www/site/uploads da seguinte maneira.

sandbox@sandbox-virtual-machine:/var/www/site/uploads$ ll
total 1736
drwxrwxrwx 2 www-data www-data    4096 Oct 18 02:53 ./
drwxrwxrwx 3 sandbox  sandbox     4096 Oct 18 00:42 ../
-rw-r--r-- 1 www-data www-data  145998 Oct 18 02:53 3d wallpaper pic.jpg
-rw-r--r-- 1 www-data www-data  166947 Oct 18 02:53 3D Wallpapers 9.jpg
-rw-r--r-- 1 www-data www-data 1451489 Oct 18 02:53  
 6453_3d_landscape_hd_wallpapers_green.jpg

Existe alguma maneira de fazer upload de arquivos e eles aparecem como

-rw-r--r-- 1 sandbox sandbox  145998 Oct 18 02:53 3d wallpaper pic.jpg
-rw-r--r-- 1 sandbox sandbox  166947 Oct 18 02:53 3D Wallpapers 9.jpg
-rw-r--r-- 1 sandbox sandbox 1451489 Oct 18 02:53     
 6453_3d_landscape_hd_wallpapers_green.jpg

para que eu pudesse imediatamente alimentá-los com script de shell em espera/execução. No momento, aguardando o script (mover, somas de verificação, renomear, redimensionar, etc.), incapaz de fazer qualquer coisa nos arquivos carregados com atributos de www-data. Se eu fizer apenas como conta local, como

sandbox@sandbox-virtual-machine:/var/www/site/uploads$touch testfile

então o script poderá ser executado como eu gostaria. Qualquer sugestão ficaria grata, obrigado antecipadamente também.

Obrigado a todos que me ajudaram, que consegui progredir.

Agora estou perto de resolver e anexar a saída

sandbox@sandbox-virtual-machine:/var/www/site/uploads$ ll
total 388
drwxrwxrwx 2 www-data www-data   4096 Oct 18 04:22 ./
drwxrwxrwx 3 sandbox  sandbox    4096 Oct 18 04:17 ../
-rw-r--r-- 1 sandbox  sandbox  166947 Oct 18 04:21 3D Wallpapers 9.jpg
-rw-r--r-- 1 sandbox  sandbox  219808 Oct 18 04:20 adafruit_pi.png
-rw-rw-r-- 1 sandbox  sandbox       0 Oct 18 04:22 test

Como posso definir permissão para arquivos enviados como 'teste' apenas com diferença no grupo do meio. Como o teste adafruit_pi.png Vs. Qual declaração devo inserir no código php, por favor?

Responder1

O PHP está sendo executado como um webapp no ​​Apache e esse é o www-datausuário que você está vendo.

Após o upload você pode alterar o proprietário e o grupo dos arquivos com:

exec( 'chgrp sandbox 3*.jpg' );
exec( 'chown sandbox 3*.jpg' );

Esteja ciente de que após alterar as permissões, o servidor web não poderá gravar nos arquivos, nem excluí-los ou movê-los.

Responder2

Tente adicionar o usuário www-data ao grupo sandbox

Responder3

Tente alterar o usuário e o grupo do serviço apache: Pesquise no arquivo de configuração do apache (acho que no ubuntu está localizado em /etc/apache2/apache2.ini) e procure pelas linhas:

User www-data
Group www-data

e mude www-datapara sandbox.

Observe que o sandboxusuário deve ter permissões para leitura/gravação na pasta webroot.

Espero que ajude.

NOTA:Isso deve ser implementado para fins de teste, não sendo recomendável para um ambiente de produção.

informação relacionada