Izin file apa yang harus saya atur di root web?

53

Saya menggunakan Ubuntu Server 10.10 dan telah menginstal server web Nginx dengan apt-get install nginx. Itu menciptakan halaman web default di /var/www/nginx-default/dan direktori itu memiliki izin drwxr-xr-x 2 root root.

Ketika saya mengakses situs default pada http://localhost/saya mendapatkan pesan ini di halaman 403 Forbidden.

Bagaimana cara saya mengatur izin file pada root www sehingga saya dapat dengan aman mengakses halaman web? Atau ada hal lain yang harus saya ubah?

Jonas
sumber
CATATAN: yang seluruh path lengkap ke folder akhir Anda harus dapat diakses! Bahkan tidak ada satu folder di tengah.
Lucio

Jawaban:

33

Saya biasanya berpegang pada 755(atau rwxr-xr-x) di root web saya, tapi saya rasa ini bukan masalah yang Anda hadapi karena direktori Anda sudah diatur untuk itu. nginxharus memiliki akses ke direktori Anda. Pertanyaannya kemudian menjadi izin (atau keberadaan) file yang Anda coba akses. File-file dalam direktori Anda harus dapat dibaca oleh pengguna nginxsaat menjalankan. Saya biasanya membiarkan file-file ini diatur ke 755(sama dengan direktori). Anda dapat mengubah seluruh direktori dengan melakukan sudo chmod -R 755 /var/www/nginx-default/.

Namun, jika tidak ada file indeks di direktori, Anda masih akan mendapatkan kesalahan yang sama. File indeks digunakan ketika Anda meminta direktori yang tidak memiliki daftar direktori yang diaktifkan. File indeks yang paling umum adalah index.html. Default ini dapat diedit di konfigurasi Anda, namun, menggunakan sesuatu seperti:

location / {
    index index.php;
}

Jika Anda ingin nginxmembuat daftar file di direktori itu untuk Anda, cukup nyalakan pengindeksan direktori , seperti:

location  /  {
  autoindex  on;
}
Jack M.
sumber
Tidak, saya punya index.htmldi direktori itu.
Jonas
Jadi, izin apa yang Anda index.htmlmiliki?
Jack M.
Terima kasih, file confiugration benar-benar menunjuk /var/www/dan dihasilkan index.htmlditempatkan /var/www/nginx-default/jadi saya harus menyalin file itu dengan cp /var/www/nginx-default/index.html /var/www/setelah itu saya bisa mengunjungi situs dengan browser web saya.
Jonas
56

Saya akan menyarankan mengubah grup webroot Anda menjadi www-data, pengguna yang digunakan oleh nginx dan juga php5-fpm.

Sebagai contoh:

sudo chown -R "$USER":www-data /webdirectory
sudo chmod -R 0755 /webdirectory

di mana pengguna-saya adalah akun Anda sendiri (yang memungkinkan Anda untuk meletakkan file-file itu dengan mudah di webroot Anda tanpa sudo).

Peter Smit
sumber
Terima kasih, perintah dijalankan tanpa masalah, tapi saya masih dapat 403 Forbiddenketika mengaksesnya dengan browser web.
Jonas
@ Jonas, saya akan menyarankan untuk memeriksa log kesalahan nginx Anda untuk melihat apa masalahnya.
Peter Smit
Terima kasih, saya menemukan kesalahan, itu ada di log kesalahan. Lihat komentar saya untuk jawaban Jacks.
Jonas
4
Bagaimana dengan file baru?
mcont
@MatteoContrini digunakan chmod 2755 webdirectory/sehingga mereka disimpan dengan izin dan hak yang sama
rhand