Linux中使用sudo执行命令时出现“找不到指令”问题的处理
故障描述:一台运行AlmaLinux 9.5的服务器,使用sudo命令调用某服务启动指令时,出现“找不到指令”错误。但使用su命令进入Root操作环境后,则可正常调用该服务启动命令。
故障处理:经检查,用户通过在其用户根目录的.bashrc文件(~/.bashrc)中添加export调用的方式,将服务启动脚本所在的目录加入其PATH环境变量中。
使用witch命令检查发现,在当前登录用户上下文或通过su方式切入的Root用户上下文中,PATH环境变量均包含服务启动脚本所在的路径。而使用sudo witch命令检查则发现,在sudo命令切入的Root用户上下文中,PATH环境变量不会继承当前用户的PATH设置。
使用下面的方式禁止sudo重设环境变量:
- 编辑/etc/sudoers文件,将Defaults env_reset行的内容改为Defaults !env_reset。
- 编辑~/.bashrc,加入新行:alias sudo="sudo env PATH=$PATH"。
重新登录用户,问题解决。
参考资料:
https://www.cnblogs.com/doggod/p/13391811.html
https://blog.csdn.net/weixin_30600503/article/details/99908209
页面版本: 1, 最后编辑于: 20 May 2025 16:16





