Hari ini saya tidak sengaja mematikan mesin produksi karena saya pikir saya menggunakan mesin lokal saya. Saya tahu, kesalahan pemula :-(
Sebagai solusi agar hal itu tidak terjadi lagi, saya berpikir untuk menghapus izin eksekusi untuk perintah shutdown karena mesin itu harus selalu menyala.
Apakah itu ide yang bagus? Bisakah Anda melihat efek samping yang tidak diinginkan dengan melakukan itu?
Cheers, Dan
Jawaban:
Sepenuhnya pendekatan lain bagaimana diperingatkan bahwa Anda bekerja pada mesin produksi adalah untuk menandai terminal. Misalnya
user@machine:~#
teks bisa merah di mesin produksi, hijau saat pengembangan, dll. Berikut ini tutorial yang bagus bagaimana melakukannya: Prompt Bash Warnasumber
Saran terbaik yang bisa saya berikan kepada Anda adalah jangan login sebagai root kecuali Anda membutuhkan akses root, dan pastikan Anda memiliki kata sandi root / sudo yang berbeda di setiap mesin.
Membuat shutdown tidak dapat diakses adalah salah satu opsi tetapi itu tidak bagus. Entah alias
shutdown
keshutdown -a
dantouch /etc/shutdown.allow
atauchmod a-x /sbin/shutdown
Juga, di mana itu berakhir? Apakah Anda juga akan melarang berhenti, reboot dan init?
sumber
-a
. Plus mengandalkan alias seperti itu sama dengan mengandalkanalias rm='rm -i'
- suatu hari nanti itu tidak akan ada ketika Anda benar-benar membutuhkannya. Selain itu,shutdown -a
kegunaannya terbatas saja.Beberapa hal yang perlu dipertimbangkan:
sumber
Saya tidak berpikir mengacaukan izin
shutdown
adalah cara untuk menangani situasi. Pada dasarnya kamu baru belajar pelajaran. Dagu.Saya telah melakukan hal-hal yang sama - mendapatkan rantai panjang sesi ssh, kemudian mengacaukan rute pada salah satu mesin yang saya ssh'd melalui, memotong diri saya. Saya telah merusak permintaan rsync, yang mengarah ke penghancuran sistem secara sistematis di sisi lain dunia. Saya sudah berjalan
rm -rf / path
di server produksi. (Waktu itu aku harus belajar bagaimana mengembalikan bekerja.)Jadi, jauh lebih tua dan semoga sedikit lebih bijaksana, saya sekarang memiliki aturan ketat yang saya terapkan pada diri saya sendiri.
Sifat pekerjaan saya mengharuskan saya menghabiskan banyak waktu di banyak permintaan root yang bervariasi, tetapi berkat kesalahan saya di masa lalu saya mempertahankan kesadaran situasional yang jauh lebih baik daripada yang saya lakukan ketika saya mulai.
sumber
Jika Anda menggunakan Ubuntu maka coba Molly-guard. Seperti yang dibahas dalam pertanyaan serupa ini .
sumber
Tergantung, sungguh. Anda dapat mencoba hanya membungkus perintah tetapi itu berarti bahwa jika Anda melakukan pembaruan atau pemutakhiran yang mempengaruhi yang dapat dieksekusi itu, Anda mungkin melupakannya dan membuatnya mengacaukan pembaruan. Bermain dengan perintah pematian sistem bisa menjadi PITA, terutama jika Anda memiliki karyawan baru atau pengganti yang akhirnya tidak tahu Anda bermain dengan binari sistem.
Secara pribadi saya akan melihat membungkus perintah dalam skrip yang mengidentifikasi sistem dengan nama dan membuat Anda mengonfirmasi itu yang benar-benar ingin Anda lakukan sebelum menjalankan biner yang sebenarnya, atau bahwa Anda harus mengetik urutan huruf tertentu untuk mengonfirmasi penutupan sebelum menjalankan biner. Itu harus memberi jeda beberapa saat.
sumber
Anda dapat mempertimbangkan pengaturan command prompt untuk memasukkan nama mesin, setidaknya pada server. Ini mungkin membantu untuk mencegah perintah lain dijalankan di mesin yang salah di masa depan. Ini lebih efektif jika nama-nama mesin diwarnai untuk membuatnya menonjol dan Anda bahkan dapat kode warna untuk mengidentifikasi peran server.
sumber
Salah satu caranya adalah tidak menggunakan
su
dan / atau login langsung keroot
. Lebih baik masuk langsung ke akun DAN memiliki kata sandi berbeda untukroot
di mesin lokal dan kunci ssh.Tentu saja itu selain untuk menonton prompt merah '#'.
sumber
Ya, menghapus bit eksekusi pada perintah shutdown adalah cara paling sederhana dan paling aman untuk mencegah shutdown yang tidak disengaja, terutama jika Anda memiliki lingkungan desktop seperti KDE pada mesin dan Anda ingin mencegah shutdown yang tidak disengaja ketika logout.
Sedangkan untuk orang baru yang bingung, saya pikir hal pertama yang akan mereka lakukan adalah
ls -l /sbin/shutdown
mencari tahu mengapa itu tidak berhasil (terutama jika mereka memiliki kebiasaan yang baik untuk melengkapi nama yang dapat dieksekusi). Tentunya Anda harus memberi tahu mereka tentang segala perubahan yang Anda lakukan.Untuk keamanan ekstra Anda bisa menambahkan baris untuk
/etc/rc.local
menghapus bit eksekusi dari perintah shutdown sehingga Anda tidak lupa untuk mengatur ulang setelah reboot.sumber
Anda cukup menghapus / sbin / dari path root. dengan begitu Anda perlu mengetikkan path lengkap untuk menjalankannya, dan biasanya memperbaiki kecelakaan.
sumber