前面说完了Linux的目录、开机流程、重定向和文件查找,方便我们对理解Linux功能、反弹shell和敏感文件搜索的原理有了简单理解,其实在Linux中的各种操作都是十分透明的,理解Linux的各种细节,对Linux渗透是十分重要的,借用大佬的一句话“Linux的对抗比的就是你跟运维谁的水平更高一点”
如果没有看过前面几篇文章的小伙伴可以移步《Linux目录结构及开机流程详解》、《Linux重定向及反弹shell详解》、《Linux文件查找命令详解》
目录
0x01 用户和组
0x02 文件权限
0x01 用户和组
Linux必须要有用户,即使是一个虚拟的用户,这个在后面会说到,同时用户在系统中还拥有一个唯一的标识UID(User Identify)。
有了用户就对应的会有一个用户组,用户组在系统中也同样拥有一个标识GID(Group Identify)
在Linux中有一个特点,只要有用户,这个用户一定会属于一个用户组,一个用户至少需要属于一个用户组,在创建用户的时候没有用户组的话,系统默认会让此用户属于与用户名相同的用户组,即默认情况下UID与GID相同。
说完这个以后,咱们说一下Linux中的用户分类,这里就会说明开头为什么会说Linux必须要有用户。
在Linux中用户分为三类
管理员
:UID必须为0,凡是UID为0的都是超级用户,相当于是古代的皇帝生杀大权在握,可以做到把系统自己都删掉。
普通用户
:UID范围500-65535,是由管理员用户生成的
虚拟用户
:UID范围1-499,系统默认就存在或者安装软件的时候生成的,虽然存在但是是不能正常使用的,像后面有nologin的就是不允许登陆的,它的存在仅仅只是为了满足服务运行的需求,在Linux中服务和程序的运行必须要属于用户,所以为了满足这样的需求,还是需要有这样的一个用户的。
那么这样的用户能不能删除呢,这样是取决于这个用户所对应的服务还需不需要,如果连这个服务都不需要了,那么就可以去进行删除的。
那么我们如何创建一个用户呢,使用 useradd
命令就可以完成了
那么我们要是想添加一个虚拟用户又该怎么创建呢
如果需要给刚刚创建的用户指定密码话,需要使用 passwd
命令来进行
如果后面不跟用户名的话,是修改当前用户密码的
如果要切换用户的话使用下列命令来进行切换
su -
这里说一下su
和su -
两条命令的区别。
su
只是切换了用户身份,但shell环境仍然是原用户的shell;而su -
连用户和shell环境一起切换了
然后接下来说一说添加用户组
用户组是可以先存在的,是可以没有用户的,但是用户的存在必须先有用户组,就好比说,一个人的出生是必须要有父母的,但是有父母并不一定会有你。
使用下列命令就可以创建一个用户组了
groupadd
然后通过下面这个命令就可以为这个用户组创建一个用户
0x02 文件权限
前面说完了用户和用户组的权限,然后说一下文件所拥有的权限
我们可以发现第三列和第四列有两列都是root,它们的含义是不一样的
第一个root是用户权限,即用户或属主,文件的所有者
第二个root是用户组,即用户组或属组,文件属于的组
这个可能有点不太清晰,在下面细说权限的时候会详细来描述
接下来再说文件的权限
前面的这串字符一共有10位,第一位是用来标识它是一个什么文件类型的,他有下列几种类型
然后就剩下了9位字符,将这9位字符每3位为一组分成三组
第一组表示用户的权限,即当前文件拥有者的权限
第二组表示用户组的权限,即当前文件所属用户组的权限,也就是属于这个用户组中的用户对这个文件的权限
第三组表示其他用户组的权限,即第二组的用户组以外的用户组对这个文件的权限
也就是下面的这个样子
分组的说完了然后说一下每一组里面的字符所代表的含义,在上面这个图中,表示权限的字符有rwx-
四种
r(read)可读权限,对应数字4
w(write)可写权限,对应数字2
x(execute)可执行权限,对应数字1
- 没有任何权限,对应数字0
其实除了这些还有一些特殊的权限:t、T、s、S、x、X、+,这些就先不提了,等之后有用到的话再说,其实对于s权限大家应该都比较熟悉,因为s权限是可以利用来进行提权的。
对于权限就先说这么多,等之后具体碰到了再说。
文章首发公众号:无心的梦呓(wuxinmengyi)
这是一个记录红队学习、信安笔记,个人成长的公众号
扫码关注即可