Bagaimana cara memberi izin baca tulis ke folder dan sub folder dan file?

10

Saya telah mengubah kepemilikan file localhost saya di /var/www/dan sub foldernya dan memberikannya izin 777. Namun, setiap kali saya menambahkan folder baru di dalamnya folder baru tidak secara otomatis mendapatkan izin itu. Bagaimana saya bisa memberikan izin folder 777 selamanya sehingga jika saya menambahkan folder atau file baru itu mendapat izin yang sama?

kamal
sumber
4
HARAP baca Alasan
Marco Ceppi
777 adalah ide yang buruk . Tetapi menggunakan ACL bisa sangat cocok. Bisakah Anda membaca solusi ini di ACL untuk melihat apakah itu bekerja dengan baik untuk Anda?
1
Terkait, untuk chmod semua direktori yang dapat Anda gunakan find . -type d -exec chmod 777 {} +untuk mengubah semua direktori menjadi 777. Ingat, Anda harus login sebagai root untuk hasil yang lebih baik, dan pastikan Anda berada di folder.
Redy S

Jawaban:

1

Izin untuk file yang baru dibuat ditetapkan oleh umask

Vojtech Trefny
sumber
bisakah kamu menulis perintah untuk membuat / var / www / dapat ditulis dan memberikannya izin sehingga saya mendapatkan izin yang sama (777) untuk situs yang baru-baru ini saya tambahkan di dalamnya.
kamal
1
Memberikan izin 777 ke server web Anda tidak baik.
saji89
Bisakah Anda menambahkan rincian lebih lanjut.
saji89
@ Vojtech Trefny. Tautan tidak berfungsi saat ini. Dikatakan 404 Tidak Ditemukan.
all4naija
12

Anda dapat menggunakan opsi rekursif kapan saja. sudo chown -R username /var/www

BZ1
sumber
Anda perlu lebih banyak upvotes!
Sheharyar
10

Seperti yang telah disebutkan orang lain , memberikan 777 izin pada /var/wwwadalah ide yang sangat buruk, terutama dalam produksi.

Solusi yang lebih baik adalah dengan memberikan izin menulis hanya kepada pengguna yang perlu memodifikasi file. Salah satu cara untuk melakukannya adalah:

  • buat grup baru

  • tambahkan pengguna yang perlu memodifikasi data /var/wwwke grup itu

  • secara rekursif mengubah kepemilikan /var/wwwgrup tersebut

  • set umaskpada /var/wwwfile sehingga semua baru dibuat dimiliki oleh kelompok yang sudah kita buat.

Pilihan lain adalah menggunakan ACL, sekali lagi, untuk memberikan izin menulis hanya kepada pengguna yang membutuhkannya.

Berikut adalah petunjuk terperinci tentang kesalahan server .

Secara umum, server web atau layanan jaringan lain atau akun pengguna sistem tidak boleh memiliki izin menulis ke file yang dilayani oleh server web, karena ini membuka kemungkinan eksekusi kode arbitrer.

Sergey
sumber
2

Anda harus mengedit /etc/apache/envvarssebagai root dengan editor pilihan Anda.

Contoh: ALT+F2
gksudo gedit /etc/apache2/envvars

Pergi ke akhir file dan tambahkan baris umask XXX.

Di mana umask adalah kebalikan dari nilai izin yang diinginkan.
Untuk 774 ini akan menjadi 003. Untuk 777 ide buruk itu akan menjadi 000.

Menyimpan.

Mulai ulang apache.

Contoh: sudo apache2ctl restart

Ini hanya akan memengaruhi file / folder yang baru dibuat oleh pengguna apache.

Catatan tambahan, baca dan tulis adalah 6 di slot pengguna, grup, atau siapa saja.

RobotHumans
sumber
0

Juga, beberapa solusi "out of the box" adalah mengkonfigurasi server http Anda untuk menggunakan folder yang berbeda. Jika Anda menggunakan Apache, cukup edit file konfigurasi itu. Dengan cara ini Anda tidak perlu mengubah izin untuk / var / www penyihir bisa menjadi ide buruk (masalah keamanan potensial).

Dan umask adalah jawaban untuk pertanyaan Anda. Ini dapat digunakan untuk membatasi hak default untuk folder dan file yang baru dibuat. Dan pengembang distribusi cenderung menggunakannya untuk membatasi akses ke beberapa folder sistem.

przemo_li
sumber
0

Saya pikir Anda ingin memiliki akses tulis /var/wwwuntuk memodifikasi file dan direktori. Saya pikir solusi terbaik adalah menginstal apache2-mpm-itkdan menambahkan file config host virtual /etc/apache2/sites-available/default:

<IfModule mpm_itk_module>
    AssignUserId your-username your-group
</IfModule>

dan jalankan chown your-username\: /var/www -Rvapache cara ini untuk itu virtual host akan berjalan dengan UID / GID Anda dan Anda akan dapat mengedit file. Bahkan file yang dibuat oleh PHP akan memiliki UID / GID Anda

Dawid
sumber