lua修改根分区文件提示Read-Only System

问题描述

在新建的组件里需要对/opt/bmc/下的某个文件做动态修改,但以写方式打开文件时打开失败,提示Read-Only System,请问是否有方法解决?

环境信息

  • 软件版本:[如 OpenUBMC2512 LTS]

组件的权限不够吧,要看文件对应的权限和用户组

组件是用root用户权限运行的,看起来不像是权限问题,打印日志如下:
image
对应代码:


文件权限:
image

升级telnet包后,执行mount -o remount rw / 手动挂载根文件系统为可读写后,该文件就能修改成功。

根分区为代码区,出于安全考虑分区以只读方式挂载,且在正式版本会开启分区对应存储设备的上电写保护,不允许篡改代码区的文件

运行过程中去修改代码区的文件是不允许的,在设计功能的时候要注意下~

要实现修改, 可以在/data分区找一个目录存放这个文件, 再将根分区的文件软链接到/data分区的实际文件。

你好,请问如何预置文件在/data分区,当前只了解到有预置在rootfs根分区下的方法。

可以参考account组件的实现,

  1. 在rootfs启动阶段创建文件
    dist/user_conf/rootfs/etc/rc.d/rc.start/S08init_user.sh

  2. CMakeLists.txt里打包到hpm包中

install(DIRECTORY dist/user_conf/rootfs/ DESTINATION . USE_SOURCE_PERMISSIONS OPTIONAL)
  1. permissions.ini配置权限etc/rc.d/rc.start/S08init_user.sh f 550 0 0

[quote=“Larry_Li, post:8, topic:5338”]
install(DIRECTORY dist/user_conf/rootfs/ DESTINATION . USE_SOURCE_PERMISSIONS OPTIONAL)
[/quote
收到,谢谢指导