Linux WebServer, pasta com permissão 755 não gravável

1

Eu corro um novo servidor web Linux (Debian, Plesk) Eu quero instalar algum aplicativo php que precisa de pastas graváveis, Se eu definir a permissão de pasta para 755 aplicativo ainda não pode escrever na pasta, ele só aceita o modo 777 , como posso configurar o servidor para aceitar 755 como uma pasta gravável? Obrigado

EDIT: este tópico ajuda-me a encontrar um suplemento do Plesk forum.parallels.com/showthread.php? t = 106297

    
por Ashian 10.12.2011 / 17:17

3 respostas

2

Você precisa colocar o diretório que deseja gravar no usuário no qual o servidor está sendo executado. Digite 'top' na linha de comando e veja com qual usuário o processo do servidor está sendo executado. Então, na linha de comando, digite sudo chown. Isso deve tornar o diretório gravável em seu servidor com 755 permissões.

    
por 10.12.2011 / 21:26
2

O servidor da web será executado com um combo de usuário / grupo diferente do seu. Como 755 significa rwx para usuário e r-x para grupo e outros (e na maioria dos casos o servidor vai cair no "outro"), faz sentido que não possa gravar na pasta. Se você precisar escrever lá, você deve permitir escrever.

Há também uma opção para usar o ACL (se o sistema de arquivos subjacente o suportar). Algo parecido com isto:

[dado@liliput tmp]$ mkdir test
[dado@liliput tmp]$ getfacl test
# file: test
# owner: dado
# group: dado
user::rwx
group::rwx
other::r-x

[dado@liliput tmp]$ setfacl -m g:apache:rwx test
[dado@liliput tmp]$ getfacl test
# file: test
# owner: dado
# group: dado
user::rwx
group::rwx
group:apache:rwx
mask::rwx
other::r-x
[dado@liliput tmp]$ ll -d test
drwxrwxr-x+ 2 dado dado 4096 Pro 10 17:48 test

Isso dará acesso de gravação ao grupo do apache, mesmo que ele tenha permissão do tipo "outros". Observe o sinal de + após as permissões que indicam que a ACL está definida.

Além disso, se seu host estiver rodando com o SELinux ativado (não sei se isso é comum para o Debian, é para clones do RHEL), você pode obter problemas de permissão mesmo que deva ser permitido (isso é chamado contexto do arquivo )

    
por 10.12.2011 / 17:58
1

Parece que o servidor da Web funciona com o usuário padrão www-data e o proprietário do arquivo é outro usuário. Portanto, o servidor da web não pode gravar. No caso do seu servidor web ser o apache, existem maneiras de derrotar este problema: 1. use o apache2-mpm-itk, que permite definir usuários diferentes para cada host virtual. 2. altere o padrão www-data para seu usuário no arquivo / etc / apache2 / env e reinicie o apache. 3. use acl e deixe www-data para escrever em seus arquivos.

E lembre-se que o 777 não é uma boa ideia no servidor da web.

    
por 10.12.2011 / 17:21