Saya menjalankan server web dan server FTP, di mana /var/www
terikat /home/user/www
.
Saya mengatur kedua direktori chmod 777
(yang baik karena hanya untuk pengujian).
Saya dapat mengunggah file ke dalamnya /home/user/www
, tetapi setiap kali saya membuat direktori baru, saya harus selalu berjalan chmod 777
di folder itu.
Kalau tidak, ketika saya mencoba menjelajahinya, saya mendapatkan pesan kesalahan
Anda tidak memiliki izin untuk mengakses / menguji / di server ini.
Adakah cara agar semua folder di dalamnya /var/www
dapat diakses oleh siapa saja? Atau bisakah izin mereka diatur secara otomatis ke 777
? Sangat menyebalkan bahwa saya harus mengetik chmod 777
setiap waktu.
permissions
apache2
chmod
pengguna1645034
sumber
sumber
Jawaban:
Ini adalah praktik buruk, tetapi mudah-mudahan Anda hanya menggunakan ini untuk pengembangan, atau Anda punya alasan bagus lainnya. Anda dapat menentukan izin saat Anda membuat direktori menggunakan
-m
opsi:Atau Anda dapat mengatur izin secara rekursif.
Sebelum menggunakan salah satu dari ini, pertimbangkan apakah Anda ingin sistem file Anda dapat diakses.
Sunting: Seperti yang disebutkan oleh Rinzwind di sini adalah cara yang lebih baik untuk mencapai apa yang Anda inginkan.
Periksa grup apa yang memiliki
/var/www
direktori Anda dan tambahkan pengguna Anda ke grup itu.Kelompoknya mungkin
www-data
.Maka Anda akan baik-baik saja dengan mengatur izin Anda ke 775.
sumber
File dan direktori di Unix mungkin memiliki tiga jenis izin: baca (
r
), tulis (w
), dan jalankan (x
). Setiap izin dapaton
atauoff
untuk masing-masing dari tiga kategori pengguna: pemilik file atau direktori; orang lain dalam kelompok yang sama dengan pemiliknya; dan yang lainnya. Untuk mengubah mode file, gunakan perintah chmod. Bentuk umumnya adalah chmod X @ Y file1 file2 ...sumber
untuk ftp membuat semua file dengan izin berbeda, Anda mungkin ingin mencari umask dari ftpd, bagaimana daemon itu dimulai
Lihatlah situs ini https://linuxaria.com/article/linux-shell-understanding-umask-with-examples
sumber
Pengumuman layanan publik:
Jangan pernah menggunakan chmod 777 untuk memperbaiki masalah
Ini adalah risiko keamanan utama jika Anda menjalankan layanan apa pun yang tersedia untuk umum, terutama aplikasi web (mis. PHP).
Model keamanan OS mengasumsikan bahwa banyak layanan (seperti server web Anda) berjalan dengan hak istimewa yang dikurangi, untuk mencegah mereka dapat memodifikasi file. Mengatur 777 pada file akan merusak desain ini.
Pengguna jarak jauh dapat menulis ke atau mengunggah file dan kemudian menipu server (atau proses lain pada sistem Anda) agar membaca atau mengeksekusi mereka. Skrip atau perangkat lunak mungkin memiliki kekurangan yang memungkinkan ini. Sangat sulit untuk mengunci setiap cara ini bisa terjadi jika ada direktori yang dapat ditulis oleh dunia.
Digunakan dalam direktori sistem tertentu (/ usr, / etc, / var, dan sebagainya), ini dapat merusak sistem Anda dengan cara yang mengejutkan.
Beberapa file sistem esensial memerlukan izin khusus seperti izin setuid / setgid agar dapat dijalankan. Misalnya, sudo. Hindari mengubah izin file apa pun pada direktori dan file yang diatur oleh sistem itu sendiri.
Tidak ada cara untuk membatalkannya dan mendapatkan kembali semua izin lama.
Artinya, jika Anda memiliki file dan folder dengan berbagai izin berbeda sebelumnya, tidak ada cara untuk kembali ke izin khusus itu - hanya untuk mengubah semuanya ke hal yang sama, yang dapat kehilangan pengaturan izin khusus apa pun yang diperlukan pada file tertentu.
Selalu ada cara yang lebih tepat untuk mencapai apa yang ingin Anda capai.
Dalam hal ini, sepertinya Anda hanya ingin server web Anda dapat membaca direktori. Memberi izin yang bisa ditulis dunia adalah jauh lebih banyak daripada yang harus Anda lakukan.
Lacak mengapa server web tidak dapat membaca direktori itu (petunjuk: itu mungkin karena direktori home Anda tidak dapat dibaca dunia. World-readable jauh lebih aman daripada yang bisa ditulis oleh dunia - setel direktori home Anda ke sesuatu seperti 755, atau pindahkan www dir itu ke luar rumah Anda ke suatu tempat seperti / var / www atau / srv).
sumber
Ini tidak berhasil bagi saya.
Saya harus menggunakan
-f
juga.sumber
Jika Anda ingin menyalin izin dan atau kepemilikan dari file lain yang Anda puas, Anda dapat melakukannya dengan menggunakan sudo chmod --referensi = path / ke / file / ke / jalur referensi / ke / file / Anda / ingin / ke / mengubah / permissino / ke
Dan Anda dapat melakukan hal yang sama untuk kepemilikan file juga.
sumber