izin default untuk / var / www

36

Saya mencoba untuk membuka file dan menulis dengan PHP di /var/wwwfolder tetapi tidak berfungsi, jadi saya lakukan

sudo chmod 777 /var/www

sekarang saya ingin mengatur izin untuk /var/wwwke default.
untuk apa ijin default /var/www?

Hossein Hosseinvand
sumber
Saya bukan anggota serverfault jadi saya tidak bisa berkomentar atau memperbaiki jawaban. Tetapi postingan ini benar-benar mengatasinya: serverfault.com/questions/357108/…
Donato
Cobalah untuk memeriksa dokumen di dalam halaman wiki: Kepemilikan File dan Direktori dan Izin untuk Konten Web.
huckbit

Jawaban:

29

Izin pada folder ini adalah:

chmod 755 /var/www/

dan file di dalam folder adalah:

chmod 644 /var/www/file
kekacauan
sumber
43

Izin default untuk /var/wwwdirinya sendiri adalah yang cukup standar: pemilik root:rootdan mod 755.

Adapun apa pun di dalamnya /var/www , itu adalah salah satu direktori langka di mana Anda memiliki hak istimewa untuk memutuskan sendiri apa yang akan dimasukkan ke dalamnya dan izin apa yang harus dimiliki oleh semua yang ada di dalamnya. Tetapi yang paling masuk akal adalah:

  • Sebagian besar file harus dapat ditulisi oleh pengguna atau grup mana pun yang paling akan menulis kepada mereka. Anda dapat mengatur agar dimiliki oleh akun pengguna Anda. Atau buat grup khusus untuk pengembang Anda. Atau jika file jarang akan dimodifikasi dan Anda ingin keamanan yang baik, Anda dapat pergi root:rootdan hanya sudo pada kesempatan langka mereka akan diubah.

  • Sebagian besar file tidak dapat ditulis oleh dunia. Jadi, 644untuk file, dan 755untuk direktori sesuai (atau 664dan 775jika Anda ingin memberikan akses tulis grup).

  • Hal ini tidak dianjurkan untuk mengatur semua itu dapat ditulis oleh server web, yaitu www-data, kecuali untuk spesifik file script web Anda untuk dapat menulis. Jika demikian, lebih baik untuk mengatur pengguna atau grup dari file-file itu www-datadaripada membuatnya bisa ditulis dunia. Perhatikan bahwa setiap saat www-datapengguna dapat menulis ke file apa pun di dalam root web, apakah itu dengan mengatur pengguna atau grup pada file-file itu, atau menjadikannya dapat ditulis oleh dunia, ini merupakan masalah keamanan potensial. Dunia yang bisa ditulis hanyalah yang terburuk dari keduanya.

thomasrutter
sumber
2
Terpilih sebagai jawaban paling konklusif di sini
Chris
2
Sekarang, ini adalah jawaban yang sangat bagus. :)
Banago
untuk meningkatkan jawaban, pertimbangkan untuk menambahkan perintah untuk mengatur penanganan yang tepat
Abraham Murciano Benzadon
Apakah ada fungsi rekursif yang dapat mengubah semua folder menjadi 755 dan file menjadi 644 di dalam var / www?
Matthew Semik
Yap: stackoverflow.com/questions/18817744/… (jawaban kedua lebih elegan daripada yang diterima IMO)
thomasrutter
9

Pastikan grup tersebut adalah www-data di '/ var / www'.

sudo chgrp www-data /var/www

Buat itu bisa ditulis

sudo chmod 775 /var/www

atur id grup untuk subfolder

sudo chmod g+s /var/www

tambahkan nama pengguna Anda ke grup

sudo useradd -G www-data [USERNAME]
OR
usermod -a -G www-data [USERNAME]

berikan diri Anda kepemilikan

sudo chown [USERNAME] /var/www/
kamil
sumber
9
Itu bukan izin default untuk / var / www, dan itu adalah ide yang sangat buruk keamanan bijaksana untuk membuat seluruh root web dapat ditulis oleh www-data. Hanya lakukan ini ketika skrip web memerlukan akses tulis ke file tertentu, dan meskipun demikian hanya melakukannya untuk file-file tertentu, bukan ke seluruh root web. Dan OP tidak mengatakan dia perlu melakukan ini, jadi ini seharusnya tidak menjadi rekomendasi sama sekali.
thomasrutter
3
Juga merupakan ide yang sangat buruk untuk menambahkan diri Anda ke grup data-www dan memperlakukan grup itu dengan cara itu. Di mana Anda membaca untuk melakukan ini? Ini saran yang sangat buruk, hampir jahat. Buat grup Anda sendiri ketika Anda perlu memberi akses grup ke sesuatu: jangan gunakan kembali kelompok yang tidak memiliki hak istimewa yang dimaksudkan untuk penggunaan internal oleh daemon.
thomasrutter
1
@neon_overload apa yang Anda rekomendasikan
aWebDeveloper
1
Tepatnya, apa yang akan Anda rekomendasikan @neon_overload?
Banago
1
@ Brian personnaly Saya merekomendasikan +1 :)
kamil
-2
sudo adduser $USER www-data
sudo chown root:root /var/www


sudo chown -R $USER:www-data /var/www/*
sudo chmod -R 755 /var/www
parmod
sumber
4
Tergantung pada isinya, mungkin berbahaya menggunakan -Rbendera di sini. Karena OP tidak menggunakan -Rbendera, kami tidak boleh merekomendasikannya untuk memperbaiki izin yang salah yang mereka buat. The -Rbendera jarang membantu!
Zanna