Suatu aplikasi yang sangat besar membutuhkan, pada satu waktu tertentu, untuk melakukan sejumlah kecil penulisan ke file yang memerlukan izin root. Ini bukan benar-benar file tetapi antarmuka perangkat keras yang terkena Linux sebagai file.
Untuk menghindari memberikan hak akses root ke seluruh aplikasi, saya menulis skrip bash yang melakukan tugas-tugas penting. Misalnya, skrip berikut akan mengaktifkan port 17 dari antarmuka perangkat keras sebagai output:
echo "17" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio17/direction
Namun, seperti suid
yang dinonaktifkan untuk skrip bash di sistem saya, saya bertanya-tanya apa cara terbaik untuk mencapai ini.
Gunakan beberapa solusi yang disajikan di sini
Panggil skrip dengan
sudo
dari aplikasi utama, dan edit daftar sudoers sesuai, untuk menghindari memerlukan kata sandi saat memanggil skrip. Saya sedikit tidak nyaman untuk memberikan hak istimewa sudoecho
.Cukup tulis program C, dengan
fprintf
, dan atur ke suid root. Hardcode string dan nama file dan pastikan hanya root yang bisa mengeditnya. Atau baca string dari file teks, juga pastikan tidak ada yang bisa mengedit file.Beberapa solusi lain yang tidak terpikir oleh saya dan lebih aman atau lebih sederhana daripada yang disajikan di atas?