GNU/Linux >> Belajar Linux >  >> Linux

Mengapa chmod -R 777 / merusak?

Solusi 1:

Pertama-tama nitpick terminologi kecil:chmod tidak menghapus izin. Ini PERUBAHAN mereka.

Sekarang inti masalahnya -- Mode 777 berarti "Siapa pun dapat membaca, menulis, atau mengeksekusi file ini" - Anda telah memberikan izin bagi siapa saja untuk melakukan (secara efektif) apa pun yang mereka inginkan.

Sekarang, mengapa ini buruk?

  1. Anda baru saja membiarkan semua orang membaca/memodifikasi setiap file di sistem Anda.
    • Kiss selamat tinggal keamanan kata sandi (siapa pun dapat membaca file bayangan dan memecahkan kata sandi Anda, tetapi mengapa repot-repot? UBAH saja kata sandinya! Jauh lebih mudah!).
    • Kiss security untuk selamat tinggal binari Anda (seseorang dapat menulis login baru program yang memungkinkan mereka masuk setiap saat).
    • Sampai jumpa file Anda:Satu pengguna salah mengarahkan rm -r / dan semuanya berakhir. OS diberitahu untuk membiarkan mereka melakukan apa pun yang mereka inginkan!
  2. Anda membuat marah setiap program yang memeriksa izin pada file sebelum memulai.
    sudo , sendmail , dan sejumlah lainnya tidak akan memulai lagi. Mereka akan memeriksa izin file kunci, melihat bahwa itu bukan yang seharusnya, dan mengembalikan pesan kesalahan.
    Demikian pula ssh akan rusak parah (file kunci harus memiliki izin khusus, jika tidak mereka "tidak aman" dan secara default SSH akan menolak untuk menggunakannya.)
  3. Anda telah menghapus bit setuid / setgid pada program yang memilikinya.
    Mode 777 sebenarnya adalah 0 777 . Di antara hal-hal di digit terdepan itu adalah setuid dan setgid bit.
    Sebagian besar program yang setuid/setgid memiliki bit yang disetel karena harus dijalankan dengan hak istimewa tertentu. Mereka rusak sekarang.
  4. Anda telah merusak /tmp dan /var/tmp Hal lain dalam digit oktal terdepan yang mendapat nol adalah sticky bit -- Itu yang melindungi file di /tmp (dan /var/tmp ) agar tidak dihapus oleh orang yang bukan pemiliknya.
    Ada (sayangnya) banyak skrip berperilaku buruk di luar sana yang "membersihkan" dengan melakukan rm -r /tmp/* , dan tanpa sticky bit yang disetel pada /tmp Anda dapat mencium semua file di direktori itu selamat tinggal.
    Menghilangnya file awal dapat benar-benar mengganggu beberapa program yang ditulis dengan buruk...
  5. Anda telah menyebabkan kekacauan di /dev /proc dan sistem file serupa
    Ini lebih merupakan masalah pada sistem Unix lama di mana /dev adalah sistem file nyata, dan isinya adalah file khusus yang dibuat dengan mknod , karena perubahan izin akan dipertahankan selama reboot, tetapi pada sistem apa pun yang mengubah izin perangkat Anda dapat menyebabkan masalah besar, mulai dari risiko keamanan yang jelas (semua orang dapat membaca setiap TTY) hingga potensi penyebab kepanikan kernel yang kurang jelas.
    Credit to @Tonny for pointing out this possibility
  6. Soket dan Pipa mungkin rusak, atau mengalami masalah lain Soket dan pipa dapat rusak seluruhnya, atau terkena injeksi berbahaya karena dibuat dapat ditulis oleh dunia.
    Credit to @Tonny for pointing out this possibility
  7. Anda telah membuat setiap file di sistem Anda dapat dieksekusi
    Banyak orang memiliki . di PATH mereka variabel lingkungan (seharusnya tidak!) - Ini dapat menyebabkan kejutan yang tidak menyenangkan karena sekarang siapa pun dapat meletakkan file dengan mudah bernama seperti perintah (misalnya make atau ls , dan mencoba membuat Anda menjalankan kode berbahaya mereka.
    Credit to @RichHomolka for pointing out this possibility
  8. Pada beberapa sistem chmod akan menyetel ulang Daftar Kontrol Akses (ACL)
    Ini berarti Anda mungkin harus membuat ulang semua ACL Anda selain memperbaiki izin di mana-mana (dan merupakan contoh nyata dari perintah yang merusak).
    Credit to @JamesYoungman for pointing out this possibility

Apakah bagian dari sistem yang sudah berjalan akan terus berjalan? Mungkin, setidaknya untuk sementara waktu.
Tetapi lain kali Anda perlu meluncurkan program, atau memulai kembali layanan, atau surga melarang REBOOT kotak Anda berada di dunia yang terluka karena #2 dan #3 di atas akan mengangkat kepala jelek mereka.

Solusi 2:

Satu hal utama adalah ada banyak alat seperti ssh/sudo yang memeriksa izin sistem file untuk file konfigurasi utama. Jika izinnya salah, alat ini dirancang untuk gagal, karena ini menunjukkan masalah keamanan yang serius. Pada sistem pengujian Debian saya dan mungkin pada yang lain, kemampuan untuk masuk gagal, mungkin karena biner masuk atau sesuatu di PAM memiliki pemeriksaan izin.

Jadi sebenarnya bukan sistem yang dihancurkan -- tetapi banyak alat yang dirancang untuk segera gagal saat izinnya salah.

Jika Anda mem-boot ulang sistem setelah melakukan chmod 777 -R / itu akan boot, dan Anda dapat memulai proses yang tidak memiliki pemeriksaan izin eksplisit. Jadi sistemnya tidak benar-benar mati, hanya by-design yang tidak dapat digunakan .


Linux
  1. Mengubah izin Linux

  2. Chmod 777 ke folder dan semua isinya

  3. Apakah aman untuk chmod 777 semuanya?

  1. Apa Penyebab File Kehilangan Izin?

  2. Mengapa file .so dapat dieksekusi?

  3. Mana yang lebih banyak digunakan:chmod 777 atau chmod a+rwx

  1. Izin Linux:Pengantar chmod

  2. Salah Mengatur Chmod / 777. Masalah?

  3. Pelajari cara mengubah izin untuk file dan folder