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?
- 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!
- 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 pulassh
akan rusak parah (file kunci harus memiliki izin khusus, jika tidak mereka "tidak aman" dan secara default SSH akan menolak untuk menggunakannya.) - Anda telah menghapus bit setuid / setgid pada program yang memilikinya.
Mode777
sebenarnya adalah0
777
. Di antara hal-hal di digit terdepan itu adalahsetuid
dansetgid
bit.
Sebagian besar program yang setuid/setgid memiliki bit yang disetel karena harus dijalankan dengan hak istimewa tertentu. Mereka rusak sekarang. - Anda telah merusak
/tmp
dan/var/tmp
Hal lain dalam digit oktal terdepan yang mendapat nol adalahsticky 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 melakukanrm -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... - 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 denganmknod
, 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
- 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
- Anda telah membuat setiap file di sistem Anda dapat dieksekusi
Banyak orang memiliki.
diPATH
mereka variabel lingkungan (seharusnya tidak!) - Ini dapat menyebabkan kejutan yang tidak menyenangkan karena sekarang siapa pun dapat meletakkan file dengan mudah bernama seperti perintah (misalnyamake
atauls
, dan mencoba membuat Anda menjalankan kode berbahaya mereka.
Credit to @RichHomolka for pointing out this possibility
- 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 .