Çok büyük bir uygulamanın, belirli bir zamanda, kök izinleri gerektiren bir dosyaya az sayıda yazma işlemi yapması gerekir. Gerçekten bir dosya değil, Linux'a bir dosya olarak maruz kalan bir donanım arayüzüdür.
Tüm uygulamaya kök ayrıcalıkları vermekten kaçınmak için, kritik görevleri yapan bir bash betiği yazdım. Örneğin, aşağıdaki komut dosyası donanım arabiriminin 17. bağlantı noktasını çıktı olarak etkinleştirir:
echo "17" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio17/direction
Ancak, suid
sistemimdeki bash scriptleri için devre dışı bırakıldığı için bunu başarmanın en iyi yolunun ne olduğunu merak ediyorum.
Burada sunulan bazı geçici çözümleri kullanın
Komut dosyasını
sudo
ana uygulamadan arayın ve komut dosyasını çağırırken parola istememek için, kullanıcı listesini uygun şekilde düzenleyin. Sudo ayrıcalıkları vermek için biraz rahatsızımecho
.Sadece bir C programı yazınız
fprintf
ve onu suid köküne ayarlayınız. Dizeleri ve dosya adlarını sabit olarak kodlayın ve yalnızca kök dizinin düzenleyebildiğinden emin olun. Veya dizeleri bir metin dosyasından da okuyarak, hiç kimsenin dosyayı düzenleyemediğinden emin olun.Bana gelmeyen ve yukarıda sunulanlardan daha güvenli veya daha basit olan başka bir çözüm?