在sudo ./rjsupplicant

【在sudo ./rjsupplicant】喵哥实验室最近找工作的师兄师姐在做笔试的时候都会遇到Linux相关的题目,作为一个“有理想、有抱负的上进青年” , 喵哥决定重新捡起Linux 。
在使用Linux的第一个问题就是连接校园网 , 虽然校园网有无线,虽然有限校园网现在可以用网页登录 , 但是喵哥觉得 , 使用Linux就要用到它的骨髓,学习它的精华 。所以使用shell是自不可少的 。
喵哥在自家学校的网络中心下载下来Linux版的锐捷认证客户端,解压后的文件长这样:

在sudo ./rjsupplicant

文章插图
根据文件其实很好理解并去操作,把锐捷正常运行起来 , 但是,喵哥这个“Debug”的命,一下就被喵哥试出了错误:
由于喵哥不喜欢马赛克,所以就没把登录的命令输入完全,其实完整的格式是这样的:
简写:sudo ./rj*.sh -a 1 -d 1 -u 有户名 -p 密码 -s internet -S 1全写:sudo ./rjsupplicant.sh --auth=1 --dhcp=1 --user=用户名 --password=密码 --save=1
在sudo ./rjsupplicant

文章插图
其实输入完全,执行的结果也是会出现“ not found”的结果,这是为什么呢?喵哥在网络上一搜一大把,总结如下:
在/etc/文件内增加这么一行: =”/bin:/usr/bin:/usr/local/bin:…”;使用脚本的完全路径,不是办法的办法;使用sudo的env选项,像这样sudo env PATH=$PATH xxx.sh;把脚本拷贝或链接到系统$PATH中;重新编译sudo,不带–with--path选项了(终极解决办法);.sh中出现了不应该出现的空格,比如在“=”两边不可以出现空格 。
喵哥花了一个多小时把这些方法反反复复使了个好几次,连重启大法都用上了 , 这些方法都没有解决喵哥的问题,第六个方法感觉有点考验技术,喵哥认真的把.sh里的空格都删了,最后可以执行.sh时(请看后面的操作),出现了死循环 。。。所以不是太懂.sh的人还是不要轻易去修改脚本 。(我是小白,不姓白)
那么是什么原因导致喵哥无法执行.sh呢?灵光一闪 , 喵哥想起之前root安卓手机时查看文件权限学到的知识,然后喵哥就去搜索Linux文件权限 。通常Linux的文件权限是这样表示的:
drwx-wx---
d表示这个文件时有目录的,即文件夹,此外还有l,表示链接,-表示为文件 。后面的九个空是三个一组分开的,三个组分别是:u(用户权限)、g(组权限)、o(不同组其他用户权限) 。每组用rwx表示 , 没有的用-填空,其中r=4,w=2,x=1,加起来就是7 。所以-rwx-w---- , 用数字表示就是720 。
查看文件的权限在路径下输入ll即可
在sudo ./rjsupplicant

文章插图

在sudo ./rjsupplicant

文章插图
可见 , .sh是没有执行权限的,喵哥无法运行它是自然的 。那么就根据网上的教程修改文件权限 。规则如下:
使用chmod命令修改文件权限;chmod 数字 文件名,如chmod 720 abc,即把rwx-w----权限给了abc文件;chmod u=x abc,给用户权限添加执行权限,g和o类似,如果全部改变,用chmod a=x abc;权限可以做加减法,这个跟rwx的数字意义呼应起来了,如chmod u+x abc 。
由于喵哥的文件缺的是执行权限,那么就在用户权限下添加执行权限,即chmod u+x .sh
在sudo ./rjsupplicant

文章插图
chmod命令运行过程是没有问题的 , 但是修改文件权限失败了,.sh还是不可执行 。然后就是去找关于文件权限修改失败的解决方法 。直到喵哥看到一篇介绍Linux挂载移动硬盘文件没有执行权限的文章,我才意识到,这个跟我存放文件的位置有关 。有两个解决方案:
把挂载的分区卸载掉,然后再重新挂载,使得改挂载分区的文件有执行权限;把.sh拷贝到Linux的分区下 。
喵哥把文件拷贝到Linux下的文档文件夹 。再按照前面的方法修改文件的权限,成功了
在sudo ./rjsupplicant

文章插图
然后登录校园网也成功了,棒!