ubuntu 锐捷认证 rjsupplicant.sh 无法运行启动脚本
在前一阶段,我上网都是用到mentohust校园网认证,虽然有些繁琐,但是还是可以用的,效果也不错。可最近学校到锐捷认证客户端升级,导致mentohust认证不再成功,总是提示所使用到锐捷到版本过低。好在学校提供了linux版本的锐捷,于是兴冲冲的安装了,可是过程是繁琐的,结果是悲剧到。 该锐捷是绿色,免安装版的:RG_SU_For_Linux_1_30_Setup,里面到README中是
在前一阶段,我上网都是用到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 更新-----------
经多次联系信息管理中心,还是中心的老师给力,升级了服务器端成功的解决了这个问题,如下图所示:
更多推荐
所有评论(0)