Permissões de usuários/grupos, como funcionam?

Permissões de usuários/grupos, como funcionam?

Estou configurando meu site e preciso mover alguns arquivos. Criei um script PHP simples que envolvia coisas como mkdir(), copy() etc... mas estou recebendo erros de permissão.

Depois de definir as pastas afetadas para 777, tudo funciona, mas no meu site antigo eu configurei 755.

Se meu usuário no Plesk for Johnnie, e o usuário no arquivo for Johnnie (e o grupo for psacln), o script PHP não deveria ter acesso? Caso contrário, o que preciso definir para o usuário do meu navegador para poder mover arquivos?

Responder1

O que você quer dizer com acesso? - para ver os atributos do arquivo; - abrir o arquivo para leitura; - abrir o arquivo para escrita; - abrir o arquivo para leitura/gravação; - para abrir o arquivo para execução.

Observe que o nome de usuário no aplicativo PHP não é o mesmo do usuário Unix, mesmo que tenham o mesmo nome.

Por favor, observe que o apache/php está sendo executado como apache, www, www-data, ninguém... usuário. Isso é configurado na configuração do Apache. Encontre isso com:

egrep -r '^User|^Group' /etc/{apache*,http*}

Antes de qualquer alteração, faça um backup.

Encontre um grupo comum do qual seu usuário e usuário do Apache fazem parte. Se não, crie um.

Altere o grupo de arquivos e pastas que você possui no DocumentRoot para este grupo:

chown -R myuser:commongroup /var/www/

Altere o SUID das pastas para que os novos arquivos pertençam a esse grupo:

find /var/www/ -type d -print0|xargs -0r chmod g+rxs
chmod -R u+r,g+r,o= /var/www/

Para as pastas e arquivos que você deseja dar acesso ao PHP para gravação faça:

chmod g+w /var/www/folder/subfolder   /var/www/folder/file.txt

Responder2

Se você estiver usando php via cgi ou mod-php sem patches/módulos adicionais para lidar com permissões, então seu script php provavelmente está sendo executado com a conta do servidor web. Freqüentemente é www-data, ninguém ou alguma outra conta não root.

Você provavelmente precisará adicionar o usuário com o qual o servidor da web está executando ao grupo ou criar um grupo que inclua o servidor da web e quaisquer outros usuários que precisem de acesso.

informação relacionada