Cada vez que crio um novo arquivo a partir do "Eclipse", preciso executar estas duas linhas de código para obter a permissão r/w:
chmod -R 775 /var/www/folder/filename.extension
E/ou
sudo chown -R www-data:www-data /var/www
E, se eu copiar alguns arquivos nessa pasta do servidor e acessá-los a partir do URL do navegador, como:
localhost/folder/filename.extension
Recebo um erro de permissão do servidor Apache.
Não há alguma maneira de me livrar desse problema?
*Observação:O erro principal ocorre quando minha move_uploaded_file()
função tenta mover o arquivo para /var/www/MyProject/
o diretório.
Responder1
Use o bit SGID.
Faça isso uma vez e esqueça esse problema:
chmod g+s /var/www/folder
Você pode querer fazer o mesmo para todas as subpastas:
find /var/www/folder -type d | xargs chmod g+s
e, apenas no caso:
find /var/www/folder -type d | xargs chgrp www-data
Agora todos os arquivos criados /var/www/folder/
pertencerão ao grupo que possui a pasta que os contém, não importa o que aconteça. Isso permitirá que você crie quaisquer arquivos ou pastas sem se preocupar se eles não pertencerão, por exemplo, aowww-dadosgrupo, que é o que você deseja.
Observe que isso funcionará apenas para arquivos ou pastas criados dentro do diretório. Se os arquivos forem criados em outro lugar e movidos para a árvore de diretórios, você ainda precisará alterar a propriedade manualmente.
Exemplo:
# Create folder that belongs to www-data group
$ mkdir test
$ chown john.www-data test
$ ls -l
drwxr-xr-x 2 john www-data 4096 Jun 17 10:14 test
# Create a file, check the ownership
$ touch test/file1
$ ls -l test/
-rw-r--r-- 1 john users 0 Jun 17 10:16 file1
# Set the SGID bit
$ chmod g+s test
$ ls -l
drwxr-sr-x 2 john www-data 4096 Jun 17 10:19 test
# Create a file, check the ownership
$ touch test/file2
$ ls -l test/
-rw-r--r-- 1 john users 0 Jun 17 10:18 file1
-rw-r--r-- 1 john www-data 0 Jun 17 10:19 file2
Mais informaçõesaqui.
Responder2
Você pode usar ACLs padrão para atribuir permissões de usuário e grupo a novos arquivos e diretórios:
setfacl -dR u:domain:rwx,g:www-data:rwx /var/www/folder/filename.extension
Responder3
Primeiramente, gostaria de ressaltar que deveria ser mais específico ao fazer perguntas; por exemplo, qual sistema operacional e distribuição Linux você está usando, pois isso pode agilizar bastante o processo de encontrar uma solução. Dito isto, você pode começar a solucionar problemas alterando a pasta específicapropriedadeeUAC(Controle de acesso do usuário) recursivamente, assim:
chown domain:www-data /var/www/folder -chR
chmod 775 /var/www/folder -cR
OBSERVAÇÃO: Excluindo a barra final(/)no final do nome da pasta, suas alterações serão aplicadas à pasta e a todo o seu conteúdo.
Quanto aos erros de permissão ao acessar o arquivo (script?) No navegador, você deve se certificar de que seu usuário possui as permissões corretas para veicular arquivos em formato apache
. Isso deve ser resolvido editando seu /etc/httpd/*/httpd.conf
arquivo e adicionando:
User domain
Group www-data