
Я разрабатываю встроенную ОС Buildroot для Raspberry Pi. Эта система будет выключаться простым отключением питания (таймера выключения не будет), поэтому она должна уметь обрабатывать отключение питания без повреждения SD-карты.
В настоящее время система использует squashfs только для чтения в качестве корневой файловой системы, и это работает хорошо. Однако, ей не хватает гибкости, поскольку, очевидно, раздел не может быть записан. Единственный способ установить новое программное обеспечение, например, это перестроить всю ОС в Buildroot. Поэтому я хотел бы изменить это, чтобы сделать систему только для чтенияпочти все времяно в некоторых особых ситуациях его можно записать.
Каков наилучший способ использования прав пользователя для предотвращения любой записи на SD-карту?за исключением определенных контролируемых обстоятельств? Я думаю, что я просто сделаю a chmod -R u-w /
на всей файловой системе, не давая пользователю ничего писать где-либо. Затем, чтобы что-то написать, пользователь должен пройти аутентификацию с sudo
.
Является ли это надежным подходом?
Одна из проблем, которую я могу предвидеть, заключается в том, что процессы, запускаемые ОС при загрузке, будут запускаться как root, и, следовательно, будут иметь права на запись. Мне нужно будет найти способ запретить операционной системе записывать что-либо в корневую файловую систему, если только это не будет явно указано пользователем.
Я мог бы настроить скрипты инициализации системы так, чтобы они запускались как непривилегированный пользователь - кто-нибудь делал это раньше? Возможно ли запустить системные процессы как пользователь, отличный от root?