事出有因, 源自使用源码编译 nginx , 在 /usr/local/sbin/ 目录下创建了nginx 启动的符号链接 , 执行 sudo nginx 的时候提示找不到命令, 但是使用普通用户身份和root用户身份执行的时候均能找到命令. 猜测原因可能出在 $PATH 环境变量上.

于是执行 sudo env

发现 PATH 果然有问题 , /usr/local/sbin/ 不在 PATH 里.

搜了一下 , 发现原因是这样的.

在 /etc/sudoers 这个文件中有一项是 secure_path , 当使用sudo执行命令的时候 , PATH 变量会被重置为 secure_path 的值. 而使用sudo执行命令是否重置环境变量则是由 /etc/sudoers 文件中的 env_reset 这一项来决定 . 据说可以将 这一项设置为 !env_reset , 这个我没验证.

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-06-26
  • 2022-12-23
  • 2022-12-23
  • 2021-11-27
  • 2022-02-12
  • 2022-03-08
猜你喜欢
  • 2022-12-23
  • 2021-05-19
  • 2021-12-02
  • 2022-12-23
  • 2021-08-07
  • 2021-11-18
  • 2022-01-21
相关资源
相似解决方案