DM脚本启动报错:please change nobody or root to execute the service script,otherwise may be failed

本文讲述了在使用达梦数据库时,启动脚本报错'please change nobody or root to execute the service script'的解决过程。问题在于安装目录的用户组被意外设置为nobody,导致dmdba用户执行失败。通过修改目录权限,将用户组改为预期的dinstall,解决了启动问题。

DM脚本启动报错:please change nobody or root to execute the service script,otherwise may be failed!

今天工作的时候遇到这么个问题,用达梦数据库的安装用户dmdba去启动数据库,前台启动正常,但是使用脚本启动失败并报错:please change nobody or root to execute the service script,otherwise may be failed!
在这里插入图片描述
按照提示切换成root用户启动还是失败
在这里插入图片描述
看了/data/dmdbms/data/DAMENG/arch目录及下属文件的权限却也都正常,并且没有隐藏文件

解决办法:
由于执行达梦启动脚本时会自动切换到达梦数据库安装目录的所属用户去执行,
今天客户环境的安装目录是/data/dmdbms 原本所属用户和组是dmdbms:dinstall,
因此正常使用dmdba用户去执行脚本是不应该报错的

于是查看了客户当前的目录权限
在这里插入图片描述
果然,不知由于什么原因,/data/dmdbms 的目录所属用户组变成了nobady:nobady
所以执行启动脚本时需要自动转到nobady用户,由于没有这个用户所以报错

执行chown dmdba:dinstall /data/dmdbms将目录所属用户组修改为之前的状态就可以正常执行启动脚本了。

至于前面用root执行启动脚本时的报错纯粹是正常的权限问题,
这些文件也都是数据库启动时临时生产的文件,所以ls -al看不到。
在这里插入图片描述

### 解决 Linux 执行服务脚本时提示需要切换到 zbs 或 root 用户的问题 在执行某些服务脚本时,系统提示必须切换到特定用户(如 `zbs` 或 `root`)才能成功运行,通常是因为该脚本涉及系统级资源访问、权限限制或配置文件的归属问题。为了解决此类问题,应采取以下方法: #### 使用 sudo 提升权限执行脚本 如果当前用户具有 `sudo` 权限,可以直接使用 `sudo` 执行脚本命令: ```bash sudo ./your_service_script.sh ``` 此方式会以临时管理员权限运行脚本,适用于临时调试或一次性操作。 #### 切换到指定用户后再执行脚本 若提示明确要求切换至 `zbs` 或 `root` 用户,可使用如下命令切换用户: ```bash su - zbs ``` 输入密码后进入目标用户的环境,再执行对应的服务脚本。这种方式能确保脚本在正确的用户上下文中运行,避免因权限不足导致的失败 [^1]。 #### 修改脚本或相关文件的权限与归属 检查服务脚本及其依赖资源(如配置文件、日志目录等)的权限设置,确保当前用户具备读写执行权限: ```bash chmod +x your_service_script.sh chown zbs:zbs_group your_service_script.sh ``` 通过调整权限和归属,可以使非特权用户也能正常执行脚本内容 [^1]。 #### 配置免密 sudo 以提升自动化能力 对于需要频繁执行的服务脚本,可以配置免密码 `sudo`,使指定用户无需每次输入密码即可执行: 编辑 `/etc/sudoers` 文件,添加如下行: ``` your_user ALL=(ALL) NOPASSWD: /path/to/your_service_script.sh ``` 此方式适用于自动化运维场景,但需注意安全控制 。 #### 检查 SELinux 或 AppArmor 等安全策略 某些情况下,SELinux 或 AppArmor 的安全策略可能阻止非特权用户执行服务脚本。可通过临时禁用或调整策略进行排查: ```bash setenforce 0 # 临时关闭 SELinux ``` 确认是否为安全模块导致问题后,再根据具体情况修改策略规则 [^1]。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值