Primeiro, adicione-se ao grupo www-data
usermod -a -G www-data (your username)
Então:
chgrp www-data /home/myuser/folderA
chmod g+rwxs /home/myuser/folderA
Deve fazer o truque a menos que as permissões no seu /home/myuser
não permitam o acesso de outros usuários.
O primeiro comando altera a propriedade do grupo da pasta para a do servidor da web. O segundo comando fornece aos membros do grupo www-data
direitos de leitura, gravação, inserção de diretórios e o grupo s
flag garantirá que todos os arquivos criados dentro desse diretório tomem www-data
como o grupo - portanto, se você criar um arquivo como myuser
o usuário www-data
terá acesso.
Nb. isso também depende das configurações de umask
de sua conta de usuário e do servidor da Web: é necessário garantir que os arquivos criados na pastaA tenham o grupo rw
access (e diretórios criados dentro do grupo de necessidade rwx
)
Se o seu servidor web não tiver inserido os direitos no seu /home/myuser
dir (bastante sensato), ele não entrará lá a menos que você faça outra coisa. Dois solns:
-
sudo mount --bind /home/myuser/folderA /var/www/mysite/folderA
(esse é um hack feio e teria que ser repetido após a reinicialização. Mas um truque poderoso também pode ser usado para tornar as pastas acessíveis dentro de cadeias de SSH.) -
Basta mover a pasta compartilhada para outro lugar, por exemplo.
/home/shared-stuff/folderA
.
A segunda opção é mais bonita. Digamos que o material na pasta A seja realmente público e você não se importa com quem vê, você pode configurá-lo como
sudo mkdir -m777 /home/shared-stuff
Em seguida, você pode inserir, digamos, folderA com permissões como acima e folderB que www-data não deve ter acesso com permissões diferentes, por exemplo,
$ cd /home/shared-stuff ; ls -l
drwxrwsr-x 2 myuser www-data 4096 Jan 17 21:46 folderA
drwxrwx--- 2 myuser myuser 4096 Jan 17 21:46 folderB