Pertama-tama, istilah kecil nitpick: chmod
tidak menghapus izin. Ini MENGUBAH mereka.
Sekarang daging masalah - Mode ini 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.
- Ciuman selamat tinggal kata sandi keamanan (siapa pun dapat membaca file bayangan dan memecahkan kata sandi Anda, tetapi mengapa repot-repot? GANTI kata sandi! Jauh lebih mudah!).
- Cium keamanan untuk binari Anda, selamat tinggal (seseorang bisa saja menulis
login
program baru yang memungkinkannya setiap saat).
- Cium selamat tinggal file Anda: Satu pengguna salah arah
rm -r /
dan semuanya berakhir. OS diberitahu untuk membiarkan mereka melakukan apa pun yang mereka inginkan!
- Anda telah mengecewakan setiap program yang memeriksa izin pada file sebelum memulai.
sudo
,, sendmail
dan sejumlah orang lain tidak akan memulai lagi. Mereka akan memeriksa izin file utama, melihat mereka tidak seperti yang seharusnya, dan menendang kembali pesan kesalahan.
Demikian pula ssh
akan rusak parah (file kunci harus memiliki izin khusus, kalau tidak mereka "tidak aman" dan secara default SSH akan menolak untuk menggunakannya.)
- Anda telah menghapus bit setuid / setgid pada program yang memilikinya.
Mode 777
sebenarnya . Di antara hal-hal dalam digit terdepan itu adalah bit dan .
Sebagian besar program yang setuid / setgid memiliki set bit itu karena harus dijalankan dengan hak istimewa tertentu. Mereka rusak sekarang.0
777
setuid
setgid
- Anda telah melanggar
/tmp
dan/var/tmp
Hal lain dalam digit oktal utama yang mendapat nol adalah sticky bit
- Bahwa yang melindungi file di /tmp
(dan /var/tmp
) dari dihapus oleh orang-orang yang tidak memilikinya.
Ada (sayangnya) banyak skrip berperilaku buruk di luar sana yang "membersihkan" dengan melakukan rm -r /tmp/*
, dan tanpa bit lengket yang ditetapkan pada /tmp
Anda dapat mencium semua file dalam direktori selamat tinggal.
Kehilangan file awal dapat benar-benar mengganggu beberapa program yang ditulis dengan buruk ...
- Anda telah menyebabkan kekacauan
/dev
/proc
dan sistem file serupa.
Ini lebih merupakan masalah pada sistem Unix lama di mana sistem /dev
file nyata, dan hal-hal yang ada di dalamnya adalah file khusus yang dibuat mknod
, karena perubahan izin akan dipertahankan di seluruh reboot, tetapi pada sistem apa pun mengubah izin perangkat Anda dapat menyebabkan masalah besar, dari risiko keamanan yang jelas (semua orang dapat membaca setiap TTY) hingga potensi penyebab panik kernel yang kurang jelas.
Credit to @Tonny for pointing out this possibility
- Soket dan Pipa dapat pecah, atau memiliki masalah lain
Soket dan pipa dapat pecah seluruhnya, atau terpapar dengan injeksi berbahaya sebagai hasil dari yang dapat ditulis dunia.
Credit to @Tonny for pointing out this possibility
- Anda telah membuat setiap file di sistem Anda dapat dieksekusi
. Banyak orang memiliki variabel lingkungan .
mereka PATH
(Anda tidak seharusnya!) - Ini dapat menyebabkan kejutan yang tidak menyenangkan karena sekarang siapa pun dapat menjatuhkan file yang dinamai seperti perintah (katakan make
atau ls
, dan mencoba membuat Anda menjalankan kode berbahaya mereka.
Credit to @RichHomolka for pointing out this possibility
- Pada beberapa sistem
chmod
akan mengatur ulang Daftar Kontrol Akses (ACL)
Ini berarti Anda mungkin harus membuat kembali semua ACL Anda selain memperbaiki izin di mana-mana (dan merupakan contoh aktual dari perintah yang merusak).
Credit to @JamesYoungman for pointing out this possibility
Akankah bagian-bagian dari sistem yang sudah berjalan 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 dalam dunia yang terluka karena # 2 dan # 3 di atas akan memundurkan kepala jelek mereka.