九零不老心
发布于 2020-06-11 / 15 阅读 / 0 评论 / 0 点赞

linux下不同用户调用相同命令优先级问题

现象:
    yum方式安装了nodejs,命令路径为node: /usr/bin/node
    二进制安装了另一个版本的nodejs,命令路径为:/usr/local/bin/node
  1. root调用的时候,是
  2. tomcat用户调用的时候,是
  3. 根本原因是两个用户默认$PATH中,不同命令所在路径的优先级不同
    root用户,/app/maven3/bin:/opt/jdk1.8.0_202/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
    tomcat用户,/app/maven3/bin:/opt/jdk1.8.0_202/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/tomcat/.local/bin:/home/tomcat/bin
  4. 所以,相同命令所在路径,如果都存在于相同用户的环境变量中,则最左侧优先级最高——最左侧路径下的命令,默认生效
  5. 所以,root下的是/usr/bin下的node命令生效,tomcat下的/usr/local/bin/下的node命令生效