
Ich entwickle ein eingebettetes Buildroot-Betriebssystem für Raspberry Pi. Dieses System wird durch einfaches Entfernen der Stromversorgung ausgeschaltet (es wird keinen Ausschalttimer geben), daher muss es in der Lage sein, das Ausschalten ohne Beschädigung der SD-Karte zu bewältigen.
Derzeit verwendet das System ein schreibgeschütztes Squashfs als Root-Dateisystem, und das funktioniert gut. Es mangelt jedoch an Flexibilität, da die Partition offensichtlich nicht beschrieben werden kann. Die einzige Möglichkeit, beispielsweise neue Software zu installieren, besteht darin, das gesamte Betriebssystem in Buildroot neu zu erstellen. Daher möchte ich dies ändern, um das System schreibgeschützt zu machen.fast die ganze Zeitaber in bestimmten ausgewählten Situationen beschreibbar.
Wie kann ich Benutzerberechtigungen am besten nutzen, um jegliches Schreiben auf die SD-Karte zu verhindern?außer unter bestimmten kontrollierten Umständen? Ich denke, ich werde einfach ein chmod -R u-w /
auf dem gesamten Dateisystem ausführen und den Benutzer daran hindern, irgendwo etwas zu schreiben. Um dann etwas schreiben zu können, muss sich der Benutzer mit authentifizieren sudo
.
Ist das ein robuster Ansatz?
Ein Problem, das ich vorhersehen kann, ist, dass Prozesse, die beim Booten vom Betriebssystem ausgeführt werden, als Root ausgeführt werden und daher Schreibberechtigungen haben. Ich müsste einen Weg finden, dem Betriebssystem zu verbieten, irgendetwas in das Root-FS zu schreiben, es sei denn, der Benutzer fordert es ausdrücklich dazu auf.
Ich könnte die Init-Skripte der Systeme so anpassen, dass sie als nicht privilegierter Benutzer ausgeführt werden. Hat das schon mal jemand gemacht? Ist es möglich, Systemprozesse als anderer Benutzer als Root zu starten?