例如: 有个whogrep.sh文件只有一行代码:who | grep tty 提权为可执行
终端输入 $ whogrep
显示 bash:whogrep 找不到命令
linux 中文件提权为可执行 却不能执行
答案:5 悬赏:50 手机版
解决时间 2021-02-03 15:41
- 提问者网友:未信
- 2021-02-03 08:07
最佳答案
- 五星知识达人网友:纵马山川剑自提
- 2021-02-03 09:25
单独敲命令进去 shell 默认是自系统的环境变量path所指定的目录寻找可执行程序的,所以执行不了的原因如果去除你的文件编辑不对(比如有可能存在全角半角字符集之类的问题)或增加权限不对之类原因的话就是你的sh文件不再path指定的目录里得原因。比如启动的init文件都是可执行,但不在path,所以你不会直接敲名字就能直接执行那文件,如果能执行系统得有多少命令啊。
*******
引自景1修改
$ chmod +x whogrep.sh
$ ./whogrep
********
上面命令如果能执行说明你文件没问题,但是得总是输入你sh文件所在目录。
如果你是想重复使用这命令的话,方式有两个:
1.将你sh文件所在目录加到path目录里。具体参考export 命令,注意一般是是root下
export path=$path;你的文件目录,
这样里面"path=$path:" 是不可缺少的,不然会清空你系统本来的path只剩下你的sh所在文件目录。
这个方式重启path会还原,想重启不消失要编辑/etc/profile (所有用户有效) 文件或~/.bashrc当前用户有效) 文件,具体方式可检索。其他方式不提了,有兴趣可详查
2.在你path设置的一个目录里设置个sh文件的链接。
具体查看 ln命令帮助。
*******
引自景1修改
$ chmod +x whogrep.sh
$ ./whogrep
********
上面命令如果能执行说明你文件没问题,但是得总是输入你sh文件所在目录。
如果你是想重复使用这命令的话,方式有两个:
1.将你sh文件所在目录加到path目录里。具体参考export 命令,注意一般是是root下
export path=$path;你的文件目录,
这样里面"path=$path:" 是不可缺少的,不然会清空你系统本来的path只剩下你的sh所在文件目录。
这个方式重启path会还原,想重启不消失要编辑/etc/profile (所有用户有效) 文件或~/.bashrc当前用户有效) 文件,具体方式可检索。其他方式不提了,有兴趣可详查
2.在你path设置的一个目录里设置个sh文件的链接。
具体查看 ln命令帮助。
全部回答
- 1楼网友:七十二街
- 2021-02-03 13:48
用./whogrep.sh来启动
至于原因,你去搜下$PATH这个变量就明白了
- 2楼网友:走死在岁月里
- 2021-02-03 12:41
Linux 系统中有两大类命令。一个是内部命令即我们平时用的who,ps,stty等,第二类是外部命令,就是我们自己写的一些shell 脚本,就比如楼主所写的。内部命令我们可以直接运行,而外部命令可以通过两种途径去运行:
1:chmod +x whogrep.sh
./whogrep.sh
2: ksh whogrep.sh 用这种方法就不需要先将文件改为可执行的,而且这里的ksh必须是你的脚本使用的shell
- 3楼网友:我住北渡口
- 2021-02-03 11:20
估计没有什么用处,因为即使你拿到了管理员权限,那也只是一个php的root权限。
linux对用户权限划分的很清楚的,当安装php后,会有一个相应的用户在系统中生成的,就算你成功提权了,可能你会觉得是系统root的权限,其实是个糖衣炮弹,假的
ps:ssh的漏洞现在已经修复了,而且现在人家用的比较多的也是ssh2,这个的漏洞就更少了,估计提权挺困难的
- 4楼网友:由着我着迷
- 2021-02-03 10:08
$ chmod 777 whogrep.sh
$ ./whogrep
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯