Saya telah berjuang dengan izin sejauh ini, dan memposting pertanyaan lain tetapi mengidentifikasi apa masalahnya, belum ada cara untuk memperbaikinya.
Pengaturan saya:
- Ubuntu Desktop dengan tumpukan LAMP
- 5 "pengguna" Saya membuat pengguna yang saya buat di server ubuntu menggunakan
sudo useradd -r -s /bin/false USERNAME
dan yang digunakan untuk mengakses folder bersama jaringan lokal, yaitu untuk komputer di jaringan saya untuk terhubung ke folder / var / www, dibagikan menggunakan Samba. - EDIT: Tujuannya adalah untuk membuat semacam "master localhost" di mana semua komputer di jaringan lokal saya dapat bekerja di situs web yang sama, secara lokal (saya TIDAK punya alamat IP statis sehingga server tidak dapat diakses dari tempat lain) .
Masalahku:
Saat ini ketika saya membuat folder baru di /var/www/html
(mis: Membuat folder / var / www / html / testsite1) menggunakan komputer jaringan apa pun, folder ini secara otomatis dimiliki oleh boris:www-data
("boris" sebagai pengguna admin utama di desktop Ubuntu saya menginstal , dan memang menampilkan boris: www-data saat dijalankan ls -l
pada folder yang baru dibuat), yang menyebabkan masalah dengan pengaturan saya saat ini (kebanyakan menggunakan Duplicator Plugin untuk wordpress oleh LifeInTheGrid). Namun, saya /var/www
dan saya /var/www/html
dimiliki olehwww-data:www-data
Karenanya, saya ingin tahu bagaimana saya dapat:
Ubah kepemilikan menjadi www-data: www-data dari semua file DAN direktori di bawah / var / www dan / var / www / html
Pastikan file atau folder apa pun yang akan saya buat dengan pengguna jaringan saya secara otomatis akan dimiliki oleh www-data: www-data (Itu termasuk file yang secara otomatis dibuat oleh skrip php seperti yang dilakukan oleh plugin Duplicator jika saya tidak salah).
Apakah ada cara untuk melakukan itu?
Catatan: Saya seorang pemula super dengan hal-hal yang berkaitan dengan Linux dan baris perintah, tapi saya mengejar ketinggalan dengan cepat.
Catatan 2: umask sudah diset sebagai 0002
EDIT:
Mencoba ini:
sudo chown -R www-data:www-data /var/www/
Dan kemudian set bit setuid dan setgid dengan melakukan ini:
sudo chmod u+s /var/www/html
sudo chmod g+s /var/www/html
Kemudian log-off, restart apache, dan mencoba membuat folder baru menggunakan Mac yang terhubung ke server saya melalui IP jaringan (IP lokal, bukan statis).
Saya Ran
ls -l on /var/www/html
Output masih:
drwxr-sr-x 2 boris www-data testsite1
catatan:
Saya sudah memeriksa konfigurasi apache saya sebelumnya dan envvars, sudah diatur ke:
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
EDIT: Saya mencoba mundur, misalnya mengatur segala sesuatu untuk dimiliki oleh boris: www-data dan mengatur konfigurasi apvv envvars saya ke boris: www-data. BEKERJA!
Inilah yang saya lakukan:
Envvars yang diubah menjadi
export APACHE_RUN_USER=boris
export APACHE_RUN_GROUP=www-data
Ran
sudo chown -R boris:www-data /var/www/
Restart Apachem, buat folder baru, tambahkan file saya, jalankan plugin, sekarang katanya bagus !!!
sumber
Jawaban:
Jawaban untuk Pertanyaan # 1: Rekursif
chown
Rekursif
chown
akan memungkinkan Anda menetapkan kepemilikan dan grup sesuai keinginan Anda/var/www/...
. Ini adalah perintah yang harus Anda gunakan:Dengan itu, setiap file dan folder akan diatur sedemikian rupa di dalam sana dengan izin kepemilikan tersebut.
Setengah Jawab ke Pertanyaan # 2:
setgid
bitJika Anda ingin kepemilikan grup default pada file, atur
setgid
bit pada/var/www/html
folder. File baru kemudian harus dibuat dengan grup itu seperti yang dinyatakan pada folder.Anda harus menetapkan izin menulis, jika ada pengguna yang LAINNYA
www-data
menulis ke direktori, dan hal itu dapat membuka Anda ke satu atau dua lubang keamanan jika Anda tidak hati-hati.Anda berakhir dengan izin
$USER:www-data
; untuk mengubah pemilik, Anda kemudian menggunakanchown
seperti yang ditunjukkan dalam metode # 1 (yang mengatakan, dalam pengaturan yang tepat Anda harus bergantung pada izin grup, bukan izin pemilik pengguna, untuk akses ke file web).Masalah Duplikator PHP Wordpress
Masalah dengan izin adalah pengguna / grup PHP berjalan sesuai kebutuhan menulis dan membaca dan kemungkinan
+x
pada direktori untuk mengedit struktur dir dan semacamnya.PHP berjalan
www-data
secara default di instalasi Ubuntu yang menggunakan konfigurasi default. Idealnya, langkah-langkah Anda di atas akan memperbaiki masalah, karena Anda terjebak dengan Duplikator Plugin menjadi plugin PHP.Idealnya Anda juga harus memeriksa dokumentasi untuk Plugin Duplicator untuk memverifikasi izin apa yang diperlukan untuk menjalankan dan bekerja.
sumber
Untuk memastikan file atau folder yang Anda buat
/var/www/html
masuk secara otomatis dimiliki oleh www-data yang dapat Anda gunakaninotify
, itu seperti cron tetapi memonitor folder / file untuk perubahan di attribuets, pembuatan file, modifikasi dan banyak lagi.Pertama instal dengan:
Izinkan root untuk digunakan
incron
dengan membuka/etc/incron.allow
dengan:dan tambahkan
root
ke file, lalu simpan dan keluar.Edit incrontab Anda dengan:
dan tambahkan baris berikut ke dalamnya:
Simpan dan keluar.
Sekarang begitu file dibuat dalam
/var/www/html
direcotry itu secara otomatis akan diatur pada keanggotaanwww-data:www-data
.Penjelasan garis di incrontab:
/var/www/html
adalah direktori yang akan dimonitor.IN_CREATE
akan menonton file yang dibuat. Ini adalah topeng perubahan file ./bin/chown -R www-data:www-data /var/www/html/
adalah perintah / tindakan untuk dieksekusi.sumber
./html
tersirat di sini (sebagai bagian dari / var / www /)-R
membuatnya rekursif (sehingga akan melintasi semua direktori di/var/www/
).Setel konfigurasi apache Anda ke www-data. Lihat
/etc/apache2/envvars
Anda harus memulai ulang apache setelah mengedit ini (
sudo service apache restart
).Masalahnya di sini mungkin bukan plugin tetapi php. Pengguna harus memiliki proses yang sama dengan PHP. Jadi Anda mungkin perlu mengaturnya ke data-www juga jika itu adalah pengguna dan grup Anda (
/etc/php5/apache2/php.ini
).sumber
www-data
, seperti halnya Debian, saya percaya./var/www/html
juga kepemilikan grup dan baca / tulis privs. Masalah lainnya adalah mereka ingin memiliki file yang dibuat oleh penggunawww-data:www-data
, dan tebakan saya adalah mereka adalah pengguna jaringan , bukan pengguna Wordpress, jadi Anda harus mencari izin file Linux.Saya menyelesaikannya! Saya masih berpikir itu adalah masalah utusan Apache, tetapi tidak yakin apakah itu hal khusus yang memecahkan masalah ... Pokoknya inilah yang saya lakukan:
Envvars yang diubah menjadi
Ran
Sekarang sudah berfungsi sejauh ini. Akan menguji lebih lanjut ...
sumber