8、Linux用户及权限

8.1 进程,库,用户,组,权限

    8.1.1 进程

    进程的安全上下文(secure context):

    进程代理进程的发起者调用所需的库在内存中进行运行,能访问哪些文件取决于发起进程的用户

    8.1.2 库

    库称之为共享库

    8.1.3 用户,组和权限

    linux的一切文件和硬件都称之为是计算资源

    用户:获取资源和服务的凭证,标识符

    组:关联用户和权限的容器,为了方便的指派权限,标识符

    权限:定义了资源和服务的访问能力)

    文件:被访问的对象

    文件的属主,属组和其他用户的访问权限

8.2 权限

8.2.1 权限分类

    权限分为r, w, x

    对于文件来说:

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

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

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

    对于目录来说:

    r: 可以对此目录执行ls以列出内部的所有文件;

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

    x: 可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息;

8.2.2 rwx和数值对应关系

    rwx:

        r--:只读

        r-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: 读写执行

    755:rwxr-xr-x(常用权限,读和执行)

8.3 用户和组

8.3.1 UID,GID和shadow

    用户:UID(标识用户的代码), /etc/passwd

    组:GID(标识组的代码), /etc/group

    解析:将用户之类的信息转换为系统能识别出来的ID号

    影子口令(将用户的密码放在另一个安全的位置):

    用户密码放置位置:/etc/shadow

    组密码放置位置:/etc/gshadow

8.3.2 用户和组分类

    用户类别(大体上分为两个):

           管理员:ID号永远为0

           普通用户:ID号为caca 1-65535

               系统用户:1-499(专门用来运行系统服务的用户,不需要登录系统)

               一般用户:500-60000

    用户组类别1:

           管理员组:

           普通组:

              系统组:

              一般组:

    用户组类别2:

        私有组:创建用户时,如果没有为其指定所属的组,系统会自动为其创建一个与用户名同名的组,称之为是私有组

        基本组:用户的默认组(此组里面只有本用户一个用户)

        附加组,额外组:默认组以外的其它组

    进程:文件查看运行进程的用户,如果用户无权限访问,则查看此用户的组,如果组也无权限访问,则此进程无法正常运行

    对象:被访问的对象

8.3.3 passwd文件

    [root@Daniel-R480 ~]# cat /etc/passwd

    root:x:0:0:root:/root:/bin/bash

    bin:x:1:1:bin:/bin:/sbin/nologin

    daemon:x:2:2:daemon:/sbin:/sbin/nologin

    adm:x:3:4:adm:/var/adm:/sbin/nologin

    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

    sync:x:5:0:sync:/sbin:/bin/sync

    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

    halt:x:7:0:halt:/sbin:/sbin/halt

    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

    operator:x:11:0:operator:/root:/sbin/nologin

    games:x:12:100:games:/usr/games:/sbin/nologin

    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

    nobody:x:99:99:Nobody:/:/sbin/nologin

    systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin

    dbus:x:81:81:System message bus:/:/sbin/nologin

    polkitd:x:999:998:User for polkitd:/:/sbin/nologin

    rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin

    rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin

    nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

    postfix:x:89:89::/var/spool/postfix:/sbin/nologin

    chrony:x:998:995::/var/lib/chrony:/sbin/nologin

    passwd文件显示顺序

        account: 登录名

        password: 密码

        UID:用户的ID号

        GID:基本组ID

        comment: 注释,用户的全名等信息

        HOME DIR:家目录

        SHELL:用户的默认shell,配置为不合法的shell无法登陆或者有些用户直接设置不允许登陆

8.3.4 用户的shell

    查看合法shell

    [root@Daniel-R480 ~]# cat /etc/shells

    /bin/sh

    /bin/bash

    /usr/bin/sh

    /usr/bin/bash

8.3.5 shadow

    密码放置位置/etc/shadow

    [root@Daniel-R480 ~]# cat /etc/shadow

    root:!!:17924:0:99999:7:::

    bin:*:17834:0:99999:7:::

    daemon:*:17834:0:99999:7:::

    shadow每一位代表的内容

        account: 登录名

        encrypted password: 加密的密码

        1970年1月1日到密码上次更改的天数

        密码能使用的天数,0表示不限制

        密码快要过期的天数

        宽限的只能改密码的几天

8.4 数据加密

    数据加密方法:

        (1)对称加密:加密和解密使用同一个密码

        (2)公钥加密(非对称加密):每个密码都成对儿出现,一个为私钥(secret key),一个为公钥(public key),一个用来加密,一个用来解密

        (3)单向加密,散列加密(可以由明文取得密文,但不能由密文取得明文):提取数据特征码,常用于数据完整性校验

    单向加密特点

        雪崩效应(蝴蝶效应):初始条件的微小改变会引起结果的巨大改变

        [root@Daniel-R480 ~]# cp /etc/inittab ./

        [root@Daniel-R480 ~]# md5sum inittab

        66a88d6c4d693170753ea3382f8bc150  inittab

        [root@Daniel-R480 ~]# vim inittab

        -bash: vim: command not found

        [root@Daniel-R480 ~]# vi inittab

        [root@Daniel-R480 ~]# md5sum inittab

        568c018aebe36cf208fc32c465e4b120  inittab

        定长输出

            MD5:Message Digest, 128位定长输出

            SHA1:Secure Hash Algorithm, 160位定长输出

        密码前面一般会有加上的杂质(salt),防止相同用户的密码显示的密文相同

Comments Closed.