V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jamesfuxk
V2EX  ›  问与答

Linux 下的 su - 以后的 PATH 的环境变量的问题

  •  
  •   jamesfuxk · 2015-08-24 05:03:08 +08:00 · 3595 次点击
    这是一个创建于 3374 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1.首先在 root 的权限在运行:

    root@marva:/# su - scidb -c "echo $PATH"
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin


    2.接下来我用了测试脚本:
    #!/bin/bash
    echo $PATH

    运行脚本:
    root@marva:/# su - scidb -s /tmp/scidbshell.sh
    /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games


    这两处的环境变量都不一样。

    3.接下来我切换到 scidb 的用户权限下来查看 scidb 的 PATH 的值
    root@marva:/# su scidb
    scidb@marva:/$ echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/scidb/14.12/bin:/opt/scidb/14.12/share/scidb


    我有个命令必须要在有后面的那个环境中才能运行成功, 不然会报没找到命令。。。

    只要让环境变量和切换到 scidb 的用户下一样,命令就可以运行成功了。

    有哪位前辈知道解决方法的,希望告知答案
    7 条回复    2015-08-25 02:37:40 +08:00
    clino
        1
    clino  
       2015-08-24 07:00:29 +08:00 via Android
    su -l 有用吗
    ahcat
        2
    ahcat  
       2015-08-24 07:22:12 +08:00 via iPhone
    su - 用户 使用该用户的环境变量
    su 用户 使用当前用户的环境变量
    VYSE
        3
    VYSE  
       2015-08-24 08:33:08 +08:00 via Android
    source /home/scidb/.bashrc
    jamesfuxk
        4
    jamesfuxk  
    OP
       2015-08-24 12:50:45 +08:00
    @ahcat 我也有看到这方面的帖子,可以我运行起来,如上面,不一样
    jamesfuxk
        5
    jamesfuxk  
    OP
       2015-08-24 12:51:05 +08:00
    @VYSE 你的想法很有意思,我试试看,谢谢了
    sinxccc
        6
    sinxccc  
       2015-08-24 12:56:08 +08:00
    "su" 会继承当前用户的所有环境变量,而 "su -" 不会继承。"su -" 用了 login shell 。

    你最后一个例子里 echo 出的 PATH 到底是 scidb 的还是从 root 继承过来的?
    jamesfuxk
        7
    jamesfuxk  
    OP
       2015-08-25 02:37:40 +08:00
    @sinxcc 这个我知道的, 最后的那个是 scidb 的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5939 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 06:08 · PVG 14:08 · LAX 22:08 · JFK 01:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.