美文网首页
2020-05-05 linux用户及权限详解

2020-05-05 linux用户及权限详解

作者: 梧唯 | 来源:发表于2020-05-04 18:21 被阅读0次

    权限:资源或服务的访问能力,分三类:属主(u),属组(g),其他用户(o:other)a表示ALL

    权限分三种,r,w,x

        文件:r:可读,可以使用类似cat等命令查看文件内容

                  w:可写,可以编辑或删除此文件

                  x:可执行,executable,可以在命令提示符下当作命令提交给内核运行

        目录:r:可以对此目录执行ls以列出内部的所有文件(但是仅此权限不能切换进此目录,也不能使用-l等命令)

                   w:可以在此目录中创建文件

                   x:可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息(无x只能ls,不能-l)(目录一般有x权限,文件一般默认没有,防止文件内有恶意命令被执行)

    使用八进制表示三类用户权限,如 755 rwxr-xr-x 👇

    0 000  ---                       1 001  --x                       2 010  -w-

    3 011  -wx                     4 100  r--                        5 101  r-x

    6 110  rw-                      7 111  rwx

    进程运行模型/进程的安全上下文(security context):文件有属主和属组。进程也有属主和属组,以发起进程的用户身份运行。所以进程究竟能够访问哪些文件,取决于进程本身的权限和它访问的资源/文件的权限,这个过程的判断由系统资源的安全管理属性自动完成的。系统首先判断进程的属主和文件属主是否匹配,匹配则按第一组属主权限执行,不匹配判断进程属主是否与文件属组匹配,匹配则按第二组属组权限执行,否则按第三组其他用户权限执行。一个可执行文件本身无论属主和属组是谁,执行之后的进程属主永远是进程的发起者,执行的进程能访问哪些文件,取决于进程属主和访问文件的属主属组,而不是被执行文件的属主属组。

    用户:UID,获取资源或服务的标识符   根据/etc/passwd(用户数据库文件)内的数据进行用户名和UID的转换(名称解析),/etc/passwd还定义了用户默认打开的shell种类,密码

    /etc/passwd:每个用户有七个字段,分别定义了用户的7个属性,分别是:

          account:登录名

          passwd:密码占位符(密码存放在/etc/shadow中)

          UID:

          GID:基本组ID    额外组信息在/etc/group中

          comment:用户的注释信息,有多个用逗号隔开,大多为空

          HOME DIR:家目录,系统用户也有但它是不允许登录的,默认在/home下创建一个同名目录

          SHELL:用户的默认shell,系统用户(/sbin/nologin)无,无法登录,非法shell也不能登录

                 /etc/shells:指定了当前系统可用的安全shell

    如果想添加一个用户,可以用nano打开/etc/passwd文件添加一行信息,并在/etc/shadow和/etc/group文件中添加相应信息,并手动设置home目录等即可。

            如何手动加密:openssl passwd -1 -salt 'nnnnnnn'  输入密码后会输出加密结果

    用户组:GID,标识符,根据/etc/group(用户组数据库文件)规定哪一类用户的可使用权限,逻辑容器

    影子口令(存放密码):用户:/etc/shadow    组:/etc/gshadow

    /etc/shadow:字段含义:从左往右分别是:

          account:登录名

          encrypted password:加密的密码

                   加密方法:对称加密:加密和解密使用同一个密码

                                     公钥加密:每个密码都成对儿出现,一个为私钥(secret key),一个为公钥(public key)

                                      单向加密/散列加密/指纹加密:提取数据特征码(每一个数据都有一个唯一特征码)只能由明文得到密文,不能反向,即只能由数据得到特征码,不能由特征码得到数据。常用于数据完整性校验,确认数据有没有被改变。验证方式是比较数据特征码是否一致。

                                              特性:1、雪崩效应:数据的微小改变将引起特征码的巨大变化,防暴力破解

                                                         2、定长输出

                                               算法:MD5:Message Digest 5为版本号   128位定长输出

                                                         SHA1:Secure Hash Algorithm    160位定长输出(更安全)              

                                               md5sum:计算文件特征码

                    /etc/shadow的加密密码由$符分三段:$1表示加密方式为MD5,第二个$后8位表示杂质(salt),第三个$后为加密密码,即使密码相同,杂质也不同,加密后的密文也不同

                    此位是*/!!表示此用户为锁定的,不允许登录的。锁定一个用户,可以在它的密码位前加!!,清空密码用户也无法登录。不设置用户密码用户也无法直接登录,但是可以用管理员状态su过去。

        自19700101之后到密码上一次被改变的时间

         密码最短使用期限,0表示修改之后可立刻再修改

         密码最长使用期限   99999表示终生

         密码必须修改前的警告时间

         非活动时间:用户被禁用前允许修改密码的宽限时间

         过期时间:从19700101开始到账号禁用的时间(账号的使用期限)

         保留字段,无意义

    /etc/group:格式:

        组名

        密码占位符

        GID

        以此组为附加组的用户列表,多个用户用,隔开

    用户类别:管理员:UID=0(内部生成的)

                      普通用户:UID=[1-65535]            2^16     超过就使用32位二进制标识

                                        系统用户:1-499  专门运行后台进程(不需要跟用户关联)的用户,不允许登录系统,没有家目录

                                        一般用户:500-60000  可以登录系统获取资源和服务

    用户组类别:管理员组:

                          普通组:

                                       系统组:

                                       一般组:

    或分为:私有组:创建用户时,如果没有为其指定所属的组,系统会自动为其创建一个与用户名同名的组,UID和GID一般相同,UID一般按passwd文件下最大的UID递增顺序添加

                  基本组:每一个用户的默认组(未必是私有组,但默认为私有组),用户创建的文件,属主是自身,属组是其默认组

                  附加组/额外组:默认组以外的其他组

    添加用户:useradd = adduser

        useradd USERNAME

        passwd USERNAME:修改用户密码

        创建用户时有些属性没有定义,系统会自动定义默认属性,默认属性设置在/etc/default/useradd中,可编辑,其他默认属性定义在/etc/login.defs配置文件中

    添加组:groupadd GRPNAME

    相关文章

      网友评论

          本文标题:2020-05-05 linux用户及权限详解

          本文链接:https://www.haomeiwen.com/subject/fjhyghtx.html