Innanzitutto, aggiungiti al gruppo www-data
usermod -a -G www-data (your username)
Poi:
chgrp www-data /home/myuser/folderA
chmod g+rwxs /home/myuser/folderA
Dovrebbe fare il trucco a meno che le autorizzazioni sul tuo /home/myuser
non consentano l'accesso ad altri utenti.
Il primo comando modifica la proprietà del gruppo della cartella in quella del server web. Il secondo comando fornisce ai membri del www-data
gruppo i diritti di lettura, scrittura, directory di accesso e il s
flag di gruppo garantirà che tutti i file creati all'interno di quella directory prendano www-data
il gruppo, quindi se si crea un file come myuser
l' www-data
utente avrà accesso.
Nb. questo dipende anche dalle umask
impostazioni sia del tuo account utente che del server web: devi assicurarti che i file creati nella cartella A abbiano rw
accesso al gruppo (e le directory create all'interno del gruppo necessario rwx
)
Se il tuo server web non ha i diritti di inserimento nella tua /home/myuser
directory (abbastanza ragionevole), allora non entrerà lì a meno che tu non faccia qualcos'altro. Due soln:
sudo mount --bind /home/myuser/folderA /var/www/mysite/folderA
(Questo è un brutto hack e dovrebbe essere ripetuto dopo il riavvio. Ma un trucco potente, può anche essere usato per rendere le cartelle accessibili all'interno delle jail SSH.)
Basta spostare la cartella condivisa da qualche altra parte, ad es /home/shared-stuff/folderA
.
La seconda opzione è la più bella. Diciamo che le cose nella cartella A sono davvero pubbliche e non ti interessa chi le vede, puoi impostarle come
sudo mkdir -m777 /home/shared-stuff
Quindi puoi inserire al suo interno, ad esempio, la cartella A con autorizzazioni come sopra e la cartella B a cui i dati www non dovrebbero avere accesso con autorizzazioni diverse, ad es.
$ 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
s
dentrog+rwxs
?