zoukankan      html  css  js  c++  java
  • Linux权限详解

    前面说完了Linux的目录、开机流程、重定向和文件查找,方便我们对理解Linux功能、反弹shell和敏感文件搜索的原理有了简单理解,其实在Linux中的各种操作都是十分透明的,理解Linux的各种细节,对Linux渗透是十分重要的,借用大佬的一句话“Linux的对抗比的就是你跟运维谁的水平更高一点”

    如果没有看过前面几篇文章的小伙伴可以移步《Linux目录结构及开机流程详解》、《Linux重定向及反弹shell详解》、《Linux文件查找命令详解》

    目录

    0x01 用户和组

    0x02 文件权限

    0x01 用户和组

    Linux必须要有用户,即使是一个虚拟的用户,这个在后面会说到,同时用户在系统中还拥有一个唯一的标识UID(User Identify)。

    有了用户就对应的会有一个用户组,用户组在系统中也同样拥有一个标识GID(Group Identify)

    在Linux中有一个特点,只要有用户,这个用户一定会属于一个用户组,一个用户至少需要属于一个用户组,在创建用户的时候没有用户组的话,系统默认会让此用户属于与用户名相同的用户组,即默认情况下UID与GID相同

    file

    说完这个以后,咱们说一下Linux中的用户分类,这里就会说明开头为什么会说Linux必须要有用户。

    在Linux中用户分为三类

    管理员UID必须为0,凡是UID为0的都是超级用户,相当于是古代的皇帝生杀大权在握,可以做到把系统自己都删掉。

    file

    普通用户UID范围500-65535,是由管理员用户生成的

    file

    虚拟用户UID范围1-499,系统默认就存在或者安装软件的时候生成的,虽然存在但是是不能正常使用的,像后面有nologin的就是不允许登陆的,它的存在仅仅只是为了满足服务运行的需求,在Linux中服务和程序的运行必须要属于用户,所以为了满足这样的需求,还是需要有这样的一个用户的。

    file

    那么这样的用户能不能删除呢,这样是取决于这个用户所对应的服务还需不需要,如果连这个服务都不需要了,那么就可以去进行删除的。

    那么我们如何创建一个用户呢,使用 useradd 命令就可以完成了

    file

    那么我们要是想添加一个虚拟用户又该怎么创建呢

    file

    如果需要给刚刚创建的用户指定密码话,需要使用 passwd 命令来进行

    file

    如果后面不跟用户名的话,是修改当前用户密码的

    file

    如果要切换用户的话使用下列命令来进行切换

    su -
    

    file

    这里说一下susu -两条命令的区别。

    su只是切换了用户身份,但shell环境仍然是原用户的shell;而su -连用户和shell环境一起切换了

    file

    然后接下来说一说添加用户组

    用户组是可以先存在的,是可以没有用户的,但是用户的存在必须先有用户组,就好比说,一个人的出生是必须要有父母的,但是有父母并不一定会有你。

    使用下列命令就可以创建一个用户组了

    groupadd
    

    file

    然后通过下面这个命令就可以为这个用户组创建一个用户

    file

    0x02 文件权限

    前面说完了用户和用户组的权限,然后说一下文件所拥有的权限

    我们可以发现第三列和第四列有两列都是root,它们的含义是不一样的

    第一个root是用户权限,即用户或属主,文件的所有者

    第二个root是用户组,即用户组或属组,文件属于的组

    这个可能有点不太清晰,在下面细说权限的时候会详细来描述

    file

    接下来再说文件的权限

    file

    前面的这串字符一共有10位,第一位是用来标识它是一个什么文件类型的,他有下列几种类型

    file

    然后就剩下了9位字符,将这9位字符每3位为一组分成三组

    第一组表示用户的权限,即当前文件拥有者的权限

    第二组表示用户组的权限,即当前文件所属用户组的权限,也就是属于这个用户组中的用户对这个文件的权限

    第三组表示其他用户组的权限,即第二组的用户组以外的用户组对这个文件的权限

    也就是下面的这个样子

    file

    分组的说完了然后说一下每一组里面的字符所代表的含义,在上面这个图中,表示权限的字符有rwx-四种

    r(read)可读权限,对应数字4
    w(write)可写权限,对应数字2
    x(execute)可执行权限,对应数字1
    - 没有任何权限,对应数字0
    

    其实除了这些还有一些特殊的权限:t、T、s、S、x、X、+,这些就先不提了,等之后有用到的话再说,其实对于s权限大家应该都比较熟悉,因为s权限是可以利用来进行提权的。

    对于权限就先说这么多,等之后具体碰到了再说。

    文章首发公众号:无心的梦呓(wuxinmengyi)

    这是一个记录红队学习、信安笔记,个人成长的公众号

    扫码关注即可

    file

  • 相关阅读:
    面向对象的链式调用
    浅显易懂的理解JavaScript中的this关键字
    js 页面刷新location.reload和location.replace的区别小结
    JavaScript中两种类型的全局对象/函数
    event.srcElement ,event.fromElement,event.toElement
    json jsonp的区别
    createElement与createDocumentFragment的点点区别
    解决Ajax不能跨域的方法
    mysqli_fetch_assoc php的新的库函数
    500 501 502 503 504 505 服务器错误
  • 原文地址:https://www.cnblogs.com/wuxinmengyi/p/11746100.html
Copyright © 2011-2022 走看看