Problema de permissões de usuário Linux

Problema de permissões de usuário Linux

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.confarquivo e adicionando:

User domain
Group www-data

informação relacionada