Saya memiliki aplikasi yang berjalan sebagai daemon dan dikendalikan oleh skrip di /etc/init.d
Terkadang kita perlu mengubah beberapa parameter startup / kontrol skrip ini dan kemudian restart daemon. Skrip ini hanya memiliki izin menulis untuk pengguna root, jadi ketika mengedit skrip ini saya perlu hak akses root.
Apa yang saya pikirkan adalah bahwa saya harus menjadikan pengguna non-root pemilik skrip tersebut. Dengan cara ini, hanya rooting dan pengguna khusus yang dapat mengedit skrip ini.
Apakah dapat diterima untuk menyimpan beberapa file yang tidak di-root di direktori /etc/init.d?
Atau tidak masuk akal, mengganggu tatanan alami sistem?
Jawaban:
Apa yang langsung terlintas dalam pikiran adalah pengguna yang kurang mampu dapat menjalankan hal-hal di boot sebagai root , yang diinginkan oleh cracker bahwa:
Ini dimungkinkan jika pengguna Anda yang kurang mampu entah bagaimana terganggu, mungkin melalui layanan lain (http / etc). Kebanyakan penyerang akan dengan cepat menjalankan suatu
ls
ataufind
pada / dari segala sesuatu/etc
hanya untuk melihat apakah ada kemungkinan seperti itu, ada cangkang yang ditulis dalam berbagai bahasa yang mereka gunakan yang membuat ini sederhana.Jika Anda mengelola server dari jarak jauh, kebanyakan melalui SSH, ada peluang yang sangat baik bahwa Anda bahkan tidak akan melihat ini kecuali Anda memeriksa skrip init, karena Anda tidak akan melihat output saat boot (meskipun, Anda harus menggunakan sesuatu yang memeriksa hash dari skrip tersebut terhadap hash yang diketahui untuk melihat apakah ada yang berubah, atau perangkat lunak kontrol versi, dll)
Anda pasti tidak ingin itu terjadi, root benar-benar perlu memiliki skrip init itu. Anda bisa menambahkan pengguna pengembangan ke daftar sudoers sehingga cukup nyaman untuk memperbarui skrip, tapi saya sarankan tidak mengizinkan akses tulis yang kurang mampu untuk apa pun di init.d
sumber
Selain poin yang sangat baik yang dibuat oleh Tim Post, saya akan menambahkan bahwa untuk pengaturan di mana banyak orang harus dapat mendorong perubahan ke server, Anda harus mempertimbangkan menggunakan beberapa jenis sistem manajemen konfigurasi.
Jika misalnya Anda menggunakan boneka, atau koki, atau cfengine, Anda dapat meminta pengguna yang relevan mengedit file secara lokal dan kemudian mendorong perubahan keluar dengan manajemen konfigurasi. Cara tepatnya mengatur ini tentu saja akan bervariasi tergantung pada sistem mana yang Anda gunakan, tetapi pengaturan yang benar itu akan termasuk perangkat lunak versi membuatnya mudah untuk kembali ke versi yang lebih lama dari file konfigurasi kapan (catatan: kapan , tidak jika !) seseorang membuat kesalahan. Ini juga akan memudahkan Anda untuk menyalin konfigurasi ke sistem pengujian terpisah dll.
sumber