415619 发表于 2014-6-2 13:29:33

OK6410通过ssh登录后,PATH变量不对问题

本帖最后由 415619 于 2014-6-2 13:31 编辑

大家好,

手里的OK6410,烧写了Linux-3.0.1,rootfs.yaffs2-nand2g。
移植了ssh(dropbear),通过串口,修改了root密码后,通过SecureCRT,使用root登录,能够成功登录,
基本命令使用正常,
网络登录的:
# echo $PATH
/usr/bin:/bin

串口登录的:# echo $PATH
/sbin:/usr/sbin:/bin:/usr/bin

导致像reboot之类的命令无法使用:
# reboot
-sh: reboot: not found

请问为什么两个环境变量不同呢?如何修改,才能在网络登录时,默认使用root的环境变量?
谢谢!


飞凌-unix 发表于 2014-6-3 09:10:32

楼主,首先,reboot命令是可以使用的。还有,你列出了两个不同的环境变量,会不会是您移植的SSH有关系?

415619 发表于 2014-6-5 00:13:09

找了下资料,登录时,载入的信息:
/etc/profile
~/.profile
板子上profile中的PATH是/usr/bin:/bin,
查看centos的profile,里面有额外的处理,pathmunge () {
    case ":${PATH}:" in
      *:"$1":*)
            ;;
      *)
            if [ "$2" = "after" ] ; then
                PATH=$PATH:$1
            else
                PATH=$1:$PATH
            fi
    esac
}

if [ -x /usr/bin/id ]; then
    if [ -z "$EUID" ]; then
      # ksh workaround
      EUID=`id -u`
      UID=`id -ru`
    fi
    USER="`id -un`"
    LOGNAME=$USER
fi

# Path manipulation
if [ "$EUID" = "0" ]; then
    pathmunge /sbin
    pathmunge /usr/sbin
    pathmunge /usr/local/sbin
else
    pathmunge /usr/local/sbin after
    pathmunge /usr/sbin after
    pathmunge /sbin after
fi增加后,再登录,PATH内容就对了;

飞凌-unix 发表于 2014-6-5 08:32:50

415619 发表于 2014-6-5 00:13 static/image/common/back.gif
找了下资料,登录时,载入的信息:
/etc/profile
~/.profile


嗯,问题解决就好
页: [1]
查看完整版本: OK6410通过ssh登录后,PATH变量不对问题