为什么执行sh说找不到命令_用sudo提示找不到命令

为什么执行sh说找不到命令_用sudo提示找不到命令解决 sudo 执行命令时找不到命令问题问题不知道大家有没有遇到一个问题,就是加sudo后命令no found,即使我们已经将export path加到了 或者例如可以, 不可以可以, 不可以可以, 不可以问题原因Linux 系统中在使用 sudo 执行命令时是为当前用户赋予临时的

解决 sudo 执行命令时找不到命令问题   问题   不知道大家有没有遇到一个问题,就是加sudo后命令no found,即使我们已经将export path加到了 或者   例如   可以, 不可以   可以, 不可以   可以, 不可以   问题原因   Linux 系统中在使用 sudo 执行命令时是为当前用户赋予临时的 root 权限,考虑到安全性等相关问题,sudo 执行命令时会重置 PATH,此时 PATH 中是不包含用户配置的很多命令的路径的。所以会发现 sudo 执行命令时可能存在找不到的情况。   比如我们使用 Node.js 的版本管理工具如:nvm 安装的 Node.js 存放于 ~/.nvm/version/node/vx.x.x/bin 中,并且 nvm 会在 PATH 中加入该路径,正常是可以使用 node 命令,但是 sudo node 时由于 PATH 被重置, node 命令是找不到的。我们一般情况下不会用 sudo 去运行 node 命令,但是很多时候我们 npm install -g 安装的命令,如果需要操作系统某些文件或功能,是需要 sudo 执行的。   比如我们在用arkade安装minikube时,提示我们有两种方式将其添加进命令,一种是通过添加到path,另一种是移动到/usr/local/bin,其中第一种就会受sudo的影响   解决方案   软链接方案   在使用 sudo 执行命令时,被重置的 PATH 中是包含 /usr/local/bin 的,所以可以将需要的命令通过软链接的方式 放到 /usr/local/bin 中,然后 sudo 运行命令就可以正常执行了。   或者使用mv也行   修改 sudo 时重置 PATH 的默认值   通过软链接的方式对于少部分命令是可行的,还是 npm install -g 的这个场景,如果安装了很多需要 sudo 权限执行的命令,每个都通过软链接的方式比较繁琐,那么我们可以通过修改 sudo 时重置 PATH 的默认值,将 ~/.nvm/version/node/vx.x.x/bin 这个路径加入到 PATH 中。   使用 sudo vim /etc/sudoers 打开文件,然后找到 secure_path 这一行,在其中加入 ~/.nvm/version/node/vx.x.x/bin,然后通过 :wq! 保存即可,这里使用 vim 强制保存是因为 /etc/sudoers 文件是只读权限。   修改 sudo 时重置 PATH 的默认值方式需要多加注意安全问题,保证加入到 PATH 的路径中包含的命令是可以被信任的,如果不能够完全信任的情况下,还是建议使用软链接的方式针对性处理需要用到的命令。   当然把 export PATH=(PATH:)HOME/.arkade/bin/ 添加到profile中还是需要的,这里只是列出这个path可信任,但是前提是要先加到PATH中去   转载自:解决 sudo 执行命令时找不到命令问题

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/69077.html

(0)
上一篇 2024年 8月 8日 上午7:32
下一篇 2024年 8月 8日 上午7:39

相关推荐

关注微信