Pertama, tambahkan diri Anda ke dalam grup www-data
usermod -a -G www-data (your username)
Kemudian:
chgrp www-data /home/myuser/folderA
chmod g+rwxs /home/myuser/folderA
Harus melakukan trik kecuali izin pada Anda /home/myuser
tidak mengizinkan akses pengguna lain.
Perintah pertama mengubah kepemilikan grup folder ke server web. Perintah kedua memberikan anggota www-data
kelompok membaca, hak write, masukkan-direktori, dan kelompok s
bendera akan memastikan bahwa setiap file yang bisa dibuat di dalam direktori take www-data
sebagai kelompok - jadi jika Anda membuat sebuah file sebagai myuser
satu www-data
pengguna akan memiliki akses.
Nb. ini juga tergantung pada umask
pengaturan akun pengguna dan server web Anda: Anda perlu memastikan bahwa file yang dibuat di folderA memiliki rw
akses grup (dan direktori yang dibuat dalam grup kebutuhan rwx
)
Jika server web Anda tidak memiliki hak masuk ke /home/myuser
dir Anda (cukup masuk akal) maka itu tidak akan masuk ke sana kecuali Anda melakukan sesuatu yang lain. Dua solns:
sudo mount --bind /home/myuser/folderA /var/www/mysite/folderA
(Ini adalah hack yang jelek dan harus diulang setelah reboot. Tapi trik yang kuat, juga dapat digunakan untuk membuat folder dapat diakses di dalam penjara SSH.)
Cukup pindahkan folder bersama di tempat lain, mis /home/shared-stuff/folderA
.
Opsi ke-2 adalah yang terbaik. Katakanlah hal-hal di folderA benar-benar bersifat publik dan Anda tidak peduli siapa yang melihatnya, Anda dapat mengaturnya seperti
sudo mkdir -m777 /home/shared-stuff
Kemudian Anda dapat memasukkan ke dalamnya, katakanlah, folderA dengan izin seperti di atas, dan folderB yang seharusnya tidak memiliki akses ke www-data dengan izin yang berbeda, misalnya
$ 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
di dalamg+rwxs
?