在前一阶段,我上网都是用到mentohust校园网认证,虽然有些繁琐,但是还是可以用的,效果也不错。可最近学校到锐捷认证客户端升级,导致mentohust认证不再成功,总是提示所使用到锐捷到版本过低。好在学校提供了linux版本的锐捷,于是兴冲冲的安装了,可是过程是繁琐的,结果是悲剧到。

 该锐捷是绿色,免安装版的:RG_SU_For_Linux_1_30_Setup,里面到README中是这样写的。


软件说明:
    本软件为绿色软件,命令行格式,解压后即可使用。
使用说明:
    解压后,使用终端进入当前根目录,运行rjsupplicant.sh脚本即可启动RG-SU。
    如果rjsupplicant.sh 脚本无法运行(非可执行文件),请运行以下命令: "sudo chmod +x ./rjsupplicant.sh"
    第一次使用时,可以通过 --help命令查看使用帮助文档。
    当客户端以后台模式运行时,输出运行日志(--help可查看),正常情况下,直接打印在终端无运行日志。
安装:
    无需安装,解压tar包后,直接使用    
卸载:
    直接删除软件目录

我 按照软件所述,进入软件的目录,在终端中输入: sudo  sh  rjsupplicant.sh

出现一个意想不到的错误:

rjsupplicant.sh :16 rjsupplicant.sh :syntax error ;“(” unexpected

如下图所示


意思是在第16行有个语法错误,多了个“(”,我还纳闷,不会吧,正式发行的版本还有错误?还是这么低级的错误??

于是就打开这个rjsupplicant.sh 文件,16行左右如下所示:

function is64BIT() #16行
{
    os=$(getconf LONG_BIT);
    if [ $os != "64" ];  then
        return 0;
    fi
    return 1;
}

这是个函数,完全没有错误。看来不是软件的问题。

有问题,找谷歌嘛,于是在网上搜啊,搜啊,最后还真找到问题的原因了,原来是sh到问题。

Ubuntu的 shell 默认安装的是 dash,而不是 bash。 
运行以下命令查看 sh 的详细信息,确认 shell 对应的程序是哪个: 
$ls -al /bin/sh  
dash 比 bash 更轻,更快。但 bash 却更常用。 
如果一些命令、脚本等总不能正常执行,有可能是 dash 的原因。 
比如编译 Android 源代码的时候,如果使用 dash,则有可能编译出错,或者编译的系统不能启动。 
 
通过以下方式可以使 shell 切换回 bash: 
$sudo dpkg-reconfigure dash 
然后选择 no 或者 否 ,并确认。 
这样做将重新配置 dash,并使其不作为默认的 shell 工具。 
 
也可以直接修改 /bin/sh 链接文件,将其指定到 /bin/bash: 
$sudo ln -fs /bin/bash /bin/sh 
 
还有一种解决方法是,在脚本文件中直接指定使用的 shell,而不是指定 sh: 
例如使用 #!/bin/bash 或者 #!/bin/dash 而不是#!/bin/sh。 
但这样将丧失脚本的通用性,使其在不具备所指定脚本的系统下不能被执行。

我查询了下,果然ubuntu默认的是dash。于是修改之。如下图所示:

下面在用 ,sudo sh  rjsupplicant.sh 就没有那个语法错误了。但是,出现了个更严重的问题。

使用 sudo sh rjsupplicant.sh  --heip 命令得知 每个命令参数,设置自己的用户名和密码

但是 ,很明显的得出:认证失败,不允许使用的客户端。。。。。。。。。。。。。。。。。。

这!TMD算是什么事。。。。

为啥从学校下载的还不能认证,到底是啥子原因。。。。。。

不晓得。。。。

已经咨询了,学校的信息管理中心,问题没有解决啊

还得继续摸索。。。。。。

不过先把失败的经历记下来,下次继续搞。

------------------------------------------------------2013.4.27      更新-----------

经多次联系信息管理中心,还是中心的老师给力,升级了服务器端成功的解决了这个问题,如下图所示:


Logo

更多推荐