LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 918|回复: 6

redhat9.0 bash PATH问题[已解决]

[复制链接]
发表于 2003-9-1 15:00:21 | 显示全部楼层 |阅读模式
redhat9.0 bash 发现以root登录后的PATH和普通用户的PATH竟然不同,导致在root下安装的软件在普通用户下无法正常使用,请教该修改哪个文件使它们相同.
另在etc下的profile和bashrc下都没有找到该软件的PATH设置,难道有其它文件是记录PATH的吗?
发表于 2003-9-1 15:06:32 | 显示全部楼层
1,root用户和普通用户的PATH当然不同
2,root安装的程序出于安全,普通用户是不能用的,除非给普通用户授权,像修改/etc/sudoers,给某些普通用户使用一些系统命令的权限.
3,在/etc/profile中,用export PATH=~/DIRNAME这样的形式导出一下就可以啦~
本版这样的讨论很多,请先搜索一下!
GOODLUCK~~~
 楼主| 发表于 2003-9-1 15:25:08 | 显示全部楼层
谢谢版主的回复,我想请教一下?
普通用户的PATH是写在/etc/profile内
那么这个root记录PATH的文件是哪个呢,因为这个程序所涉及的PATH比较多,所以用export比较复杂,我想比较一下两者的区别,这样比较好改
发表于 2003-9-1 17:50:55 | 显示全部楼层
/etc/profile是个全局的环境文件,他包含了root和所有用户的环境变量,你可以用不同身份运行env,比较一下他们的区别,那么每个用户的PATH是不同的.
建议修改PATH时要仔细.
在脚本中使用export很方便,怎么会复杂呢?:ask
 楼主| 发表于 2003-9-1 19:22:47 | 显示全部楼层
这是我的profile,但找不到PATH的设置,感觉它调用了另外一个文件,想请教是否调用了另外一个储存PATH的文件
# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc

pathmunge () {
        if ! echo $PATH | /bin/egrep -q "(^|$1($|" ; then
           if [ "$2" = "after" ] ; then
              PATH=$PATH1
           else
              PATH=$1PATH
           fi
        fi
}

# Path manipulation
if [ `id -u` = 0 ]; then
        pathmunge /sbin
        pathmunge /usr/sbin
        pathmunge /usr/local/sbin
fi

pathmunge /usr/X11R6/bin after

unset pathmunge

# No core files by default
ulimit -S -c 0 > /dev/null 2>&1

USER="`id -un`"
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"

HOSTNAME=`/bin/hostname`
HISTSIZE=1000

if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
    INPUTRC=/etc/inputrc
fi

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC

for i in /etc/profile.d/*.sh ; do
    if [ -r "$i" ]; then
            . $i
    fi
done

unset i
发表于 2003-9-1 19:27:26 | 显示全部楼层
看我的/etc/profile是怎么用export导出PATH的.
  1. ..
  2. export PATH USER LOGNAME HOSTNAME HISTSIZE INPUTRC PS1 HISTFILE
  3. [color=red]export PATH=${PATH}:~/myshell
  4. export PATH=${PATH}:~/myperl[/color]
  5. ...
复制代码
红字是我后添加的.
用env显示环境
  1. [/home/javalee/myshell]env
  2. _=/usr/bin/env
  3. PATH=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:[color=red]/home/javalee/myshell:/home/javalee/myperl:/home/javalee/myshell:/home/javalee/myperl[/color]
  4. ....
复制代码
发表于 2004-2-27 14:15:47 | 显示全部楼层
不错,顶顶
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表