目录
在国产系统银河麒麟硬件设备上部署视频监控平台系统软件时,有时会遇到无法通过Shell脚本修改文件的问题。这些问题可能源于多种因素,包括文件权限、系统安全策略等。
一、问题描述
在银河麒麟国产化硬件设备上部署视频监控平台系统软件的过程中,需要通过Shell脚本来修改配置文件或创建必要的目录和文件。然而,在部署的过程中shell脚本执行echo命令新增文件内容,遇到无法修改文件的情况。
二、解决方法
1、检查部署脚本权限
经过检查部署脚本给到了777的权限,且执行脚本时使用的是root用户
2、检查脚本中语法是否有问题
将脚本中执行报错的语句放在命令行中直接执行,发现命令执行成功。目标文件成功被修改
那么说明在银河麒麟的系统中,shell脚本的权限收到了限制,导致echo命令权限不足,无法在shell脚本生效
3、使用tee命令对文件进行修改
新建一个测试shell脚本,用tee命令写入对文件的修改进行测试
结果依旧显示权限不够
由此可以说明,shell脚本中对文件做修改的命令,都受到了限制,那么有可能是因为银河麒麟的系统安全设置导致的。
4、查看银河麒麟系统的安全设置
# getstatus
Kysec status表示当前Kysec状态为normal;
exec control表示当前执行控制功能状态为告警
net control表示当前网络控制功能状态为关
fle protect表示当前文件保护功能为开
kmod protect表示当前内核模块保护状态为开
three admin表示当前三权分立状态为关
process protect表示当前进程保护功能为开
device control表示当前设备管理功能为开
Ipt control表示当前系统防火墙为开
由此可以看到,shell脚本无法对文件进行修改,可能是安全设置做出了限制
调整kesec设置:
# 设置Kysec安全状态为软/强制模式;
sudo setstatus softmode/normal
# 关闭执行控制功能状态:
sudo setstatus -f exectl off
# 开启执行控制功能状态:
sudo setstatus -f exectl on
# 关闭内核模块保护功能
sudo setstatus -f kmod off
# 关闭文件保护功能
sudo setstatus -f fpro off
修改系统设置后,再次执行shell脚本,echo命令修改文件可以正常执行。视频监控软件的部署脚本可以正常执行。问题得到了解决。
文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。
标签:脚本,文件,shell,国产化,硬件,修改,权限,执行,系统软件 From: https://blog.csdn.net/weixin_70208651/article/details/144137249