Linux服务器sudo bash运行脚本权限不足且su需密码如何解决
解决方案
首先纠正排查误区:sudo启动的脚本内部执行的所有命令默认都会继承root权限,你遇到的Permission denied报错和权限继承无关,核心原因是被调用的catalina.sh文件权限配置异常,且你不需要通过su -切换root账户——云服务商默认提供的Ubuntu镜像中,默认登录的ubuntu用户默认拥有无密码(或仅需输入当前用户密码)执行sudo的权限,root账户默认未设置可交互登录密码,不需要专门获取。
按以下步骤操作即可修复:
- 第一步:修复
catalina.sh的基础权限,执行以下命令给所有用户增加该文件的读、执行权限:sudo chmod 755 /home/ubuntu/flowable/tomcat/bin/catalina.sh - 第二步:修复整个flowable目录的属主,避免目录下文件属主异常导致root/ubuntu用户无法读取:
sudo chown -R ubuntu:ubuntu /home/ubuntu/flowable/ - 第三步:检查
start-work.sh第25行的调用逻辑,不要使用相对路径调用catalina.sh,必须写绝对路径,避免sudo执行时工作目录切换导致路径解析失败。错误写法示例:bin/catalina.sh start,正确写法示例:/home/ubuntu/flowable/tomcat/bin/catalina.sh start - 第四步:直接重新执行原启动命令即可:
sudo bash start-work.sh
补充说明:如果执行sudo命令时系统提示输入密码,直接输入
ubuntu用户的登录密码即可(pem/ppk密钥登录的场景下,大部分镜像配置了sudo免密,直接回车即可通过验证,不需要输入root密码)。
内容的提问来源于stack exchange,提问作者daph111
相关产品推荐
相关产品推荐

