解决sudo 找不到命令

1,621 阅读1分钟

经过本人反复的试验(ubuntu 20.04,ubuntu 22.04 均适用于wsl),最方便的解法是这个: 可能是腾讯的爬虫爬的。本文将解法做总结

原因:当sudo以管理权限执行命令的时候,linux将PATH环境变量进行了重置,当然这主要是因为系统安全的考虑,但却使得sudo搜索的路径不是我们想要的PATH变量的路径,当然就找不到我们想要的命令了。

TMD,sudo的环境变量与TMD的root的环境变量是TM不一致的!而且,修改sudo的环境变量是用sudo visudo(此命令会修改/etc/sudoers)!不推荐用su + vi的方法去修改,坑太多。

解法1: sudo visudo 后,在Defaults secure_path里来回加东西,很烦。

解法2(个人推荐):

  1. sudo visudo 将将Defaults env_reset改成Defaults !env_reset取消掉对PATH变量的重置。
  2. 在.bashrc或/etc/profile中最后添加alias sudo='sudo env "PATH=$PATH"',这样sudo执行命令时所搜寻的路径就是系统的PATH变量中的路径。

别忘记了两种解法都后都要 source ~/.bashrc刷新环境变量的相关配置!