问题描述
在新建的组件里需要对/opt/bmc/下的某个文件做动态修改,但以写方式打开文件时打开失败,提示Read-Only System,请问是否有方法解决?
环境信息
- 软件版本:[如 OpenUBMC2512 LTS]
在新建的组件里需要对/opt/bmc/下的某个文件做动态修改,但以写方式打开文件时打开失败,提示Read-Only System,请问是否有方法解决?
组件的权限不够吧,要看文件对应的权限和用户组
组件是用root用户权限运行的,看起来不像是权限问题,打印日志如下:
![]()
对应代码:
升级telnet包后,执行mount -o remount rw / 手动挂载根文件系统为可读写后,该文件就能修改成功。
根分区为代码区,出于安全考虑分区以只读方式挂载,且在正式版本会开启分区对应存储设备的上电写保护,不允许篡改代码区的文件
运行过程中去修改代码区的文件是不允许的,在设计功能的时候要注意下~
要实现修改, 可以在/data分区找一个目录存放这个文件, 再将根分区的文件软链接到/data分区的实际文件。
你好,请问如何预置文件在/data分区,当前只了解到有预置在rootfs根分区下的方法。
可以参考account组件的实现,
在rootfs启动阶段创建文件
dist/user_conf/rootfs/etc/rc.d/rc.start/S08init_user.sh
在CMakeLists.txt里打包到hpm包中
install(DIRECTORY dist/user_conf/rootfs/ DESTINATION . USE_SOURCE_PERMISSIONS OPTIONAL)
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
收到,谢谢指导