Bagaimana cara memberi pengguna data-www ke folder di folder rumah saya?


31

Saya punya folder: /home/myuser/folderA

Saya ingin memberikan akses data kepada pengguna www-data ke di atas, sementara 'myuser' tetap memiliki akses normal (karena ini adalah folder rumah myuser).

Perintah mana yang harus saya gunakan?

Catatan: Saya tidak ingin www-datamemiliki akses ke folder lain di /home/myuser/.

Terima kasih sebelumnya.

Jawaban:


46

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/myusertidak mengizinkan akses pengguna lain.

Perintah pertama mengubah kepemilikan grup folder ke server web. Perintah kedua memberikan anggota www-datakelompok membaca, hak write, masukkan-direktori, dan kelompok sbendera akan memastikan bahwa setiap file yang bisa dibuat di dalam direktori take www-datasebagai kelompok - jadi jika Anda membuat sebuah file sebagai myusersatu www-datapengguna akan memiliki akses.

Nb. ini juga tergantung pada umaskpengaturan akun pengguna dan server web Anda: Anda perlu memastikan bahwa file yang dibuat di folderA memiliki rwakses grup (dan direktori yang dibuat dalam grup kebutuhan rwx)

Jika server web Anda tidak memiliki hak masuk ke /home/myuserdir Anda (cukup masuk akal) maka itu tidak akan masuk ke sana kecuali Anda melakukan sesuatu yang lain. Dua solns:

  1. 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.)

  2. 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

apa yang ada sdi dalam g+rwxs?
T.Todua

"Kelompok lengket" sedikit. Efeknya dijelaskan dalam para yang dimulai dengan "Yang pertama ..." :-)
artfulrobot

6

Cara lain adalah dengan mengubah nama pengguna secara langsung di konfigurasi apache, ini jika mesin lokal Anda dan Anda menyimpan gambar dari tempat lain yang akan menghancurkan semua izin yang dibuat pada folder. Juga harus dilakukan jika Anda hanya memiliki 1 pengguna dan tidak peduli dengan data-www!

$ sudo vi /etc/apache2/apache2.conf

Temukan Pengguna dan Grup dan letakkan milik Anda
User <Your User>
Group <Your Group>

$ sudo service apache2 restart

Solusi ini sepertinya tidak begitu aman, ada yang tahu ancaman keamanan apa yang akan ditimbulkan oleh pengaturan ini?
Fleuv

Saya cukup yakin itu tidak aman, itu sebabnya saya memberikan ketelitian Mesin Lokal saja.
Shadowbob

Solusi ini menyediakan semua akses ke apache ke folder Anda ...
Loenix
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.