扫盲

-perm匹配权限

4000 2000 1000分别表示SUID SGID SBIT

/bin/sh和/bin/bash

Bourne shell(sh)是一个早期的重要shell,由史蒂夫·伯恩在1978年前后编写,并同Version 7 Unix一起发布。bash则在1987年由布莱恩·福克斯创造。
bash(GNU Bourne-Again Shell)是许多Linux发行版的默认Shell事实上,还有许多传统UNIX上用的Shell,例如tcsh、csh、ash、bsh、ksh等等,Shell Script大致都类同。

在shell脚本的开头往往有一句话来定义使用哪种sh解释器来解释脚本。
目前常见的shell脚本中主要有以下两种方式:
(1) #!/bin/sh
(2) #!/bin/bash
注意:每个脚本开头都使用"#!",#!实际上是一个2字节魔法数字,这是指定一个文件类型的特殊标记,在这种情况下,指的就是一个可执行的脚本。在#!之后,接一个路径名,这个路径名指定了一个解释脚本命令的程序,这个程序可以是shell,程序语言或者任意一个通用程序。
sh是bash的一种特殊的模式,也就是 /bin/sh 相当于 /bin/bash --posix。说白了sh就是开启了POSIX标准的bash。

rbash

受限制的bash
绕过

BASH_CMDS[a]=/bin/sh;a 
$ /bin/bash
export PATH=$PATH:/bin/
export PATH=$PATH:/usr/bin

外壳

Linux的外壳程序称作shell(命令行解释器),它的作用是:
1.将命令翻译给kernal
2.将kernl处理结果翻译给用户
一般我们使用的shell为bash。
在解释命令的时候,bash不会直接参与解释,而是创建新进程进行命令的解释,bash只用等待结果即可,这样能保证bash进程的安全。
win的外壳为dos界面。

Linux export命令

Linux export 命令用于设置或显示环境变量。
在 shell 中执行程序时,shell 会提供一组环境变量。export 可新增,修改或删除环境变量,供后续执行的程序使用。export 的效力仅限于该次登陆操作。
export MYENV=7 //定义环境变量并赋值

参考链接:
https://blog.csdn.net/u014470361/article/details/88049410
https://www.cnblogs.com/daoluanxiaozi/archive/2012/02/23/2365513.html
https://blog.csdn.net/weixin_40739833/article/details/81431915
https://www.cnblogs.com/rootid/articles/10568699.html
https://www.cnblogs.com/xiaoxiaoleo/p/8450379.html
2020-8-09 第三周

posted @ 2020-08-09 13:40  4U  阅读(104)  评论(0编辑  收藏  举报