通过SSH启动服务提示dzdo: service: command not found问题求助
问题原因解答
核心报错原因
- 目标服务器已将
sudo配置为全局别名,实际调用企业级权限管控工具dzdo(Centrify PowerBroker的权限管理命令,常用于企业内部替代原生sudo做权限审计),这也是你执行sudo但报错信息出现dzdo关键字的原因。 dzdo默认启用安全路径规则,执行命令时不会继承当前登录用户的PATH环境变量,只会从预设的安全目录查找命令。service命令通常存放于/usr/sbin、/sbin这类管理员专属路径,当前dzdo的安全路径配置未包含上述目录,因此触发找不到命令的报错。- 此前带sudo的命令可正常执行,是因为之前操作的命令均位于
dzdo安全路径已覆盖的目录中,未触发路径缺失问题。
快速修复方案
直接使用service命令的绝对路径执行即可,先登录目标服务器执行which service查询实际路径,比如常见路径下命令修改为:
ssh $DEPLOY_USER@$DEPLOY_HOST "sudo /usr/sbin/service my-service start"
内容的提问来源于stack exchange,提问作者IKo
相关产品推荐
相关产品推荐

