zoukankan      html  css  js  c++  java
  • 切换用户后,/etc/profile的配置不起效

    遇到的问题

    在配置linux的时候,发现一个问题:su root切换到root用户后,/etc/profile 中配置的PATH不起效果。

    问题分析和疑问

    1. 是不是/.profile,/.bashrc等初始化当前用户的脚本有非法的初始化操作覆盖了PATH ?
    2. /etc/profile 定义的PATH不是全局有效吗?

    解决办法

    疑问1很快排除了,后来google 到这里找到解决思路。
    用su - root 代替 su root

    跟着文中提到的几个概念(登录shell,交互shell),查了一下资料,思路终于理清了。

    1. 不同用户初始的PATH是不一样的。切换用户系统会先将PATH设为初始值,然后再根据调用的初始化脚本,添加PATH中的路径。并不是所有用户共用一个PATH
    2. su - root,产生一个登录shell去执行后面的指令。登录 shell 执行的是shell 登录的流程,会执行 /etc/profile,/etc/profile.d/下定义的*.sh都会执行。
    3. su root,产生一个非登录交互shell,非登录交互shell,只执行 用户家目录下 .profile等配置文件。

    一些相关的概念

    1. shell 是用户和操作系统内核通信的接口。
    2. 由于历史的原因,产生了很多shell的办法。/etc/shells文件记录了当前系统可用的shell。linux 系统默认的shell是bash。
    3. 可以通过命令: ps -ef | grep bash 查看当前活跃的shell
    4. exit 当前shell(login shell可以用logout退出)。
    5. echo $$可以查看当前shell ID , 退出shell前后可以执行这个指令进行验证。
  • 相关阅读:
    博弈基础小结
    P4677 山区建小学|区间dp
    两道DP,四年修一次路
    每天一套题打卡|河南省第七届ACM/ICPC
    nyoj 1278G: Prototypes analyze 与 二叉排序树(BST)模板
    表达式求值
    每天一套题打卡|河南省第八届ACM/ICPC
    每天一套题打卡|河南省第九届ACM/ICPC
    每天一套题打卡|河南省第十届ACM/ICPC
    [UNIX]UNIX常用命令总结
  • 原文地址:https://www.cnblogs.com/liujiangyi/p/9455960.html
Copyright © 2011-2022 走看看