美文网首页
D21-操作系统用户管理

D21-操作系统用户管理

作者: 荆俊玮 | 来源:发表于2019-08-04 20:26 被阅读0次

    一、补充

    1.在其他用户登陆时,目录只有只读权限时,可以查看目录内容,但无法正常全部读取,只限于读取目录内文件名称。

    2.在其他用户登陆时,需要修改或编辑文件信息,根上级目录的执行权限有关,上级目录有执行权限,该文件有写的权限,自然就可以修改文件内容。

    3. 在其他用户登陆时,想要改动文件,包括创建新的文件、重命名文件和删除文件,必须保证上级目录的权限中有写的权限。

    二、系统用户重要文件

    a. /etc/passwd ==>系统用户记录文件

    1.作用:系统每创建一个用户,该文件就会记录一个用户信息文件
    2.查看:tail -1(最后一行) /etc/passwd
    3.内容:
    1)root 2):x3):0 4):0 5):root 6):/root 7):/bin/bash
    1)nobody 2):x3):99 4) 5):99 6):Nobody:/ 7) :/sbin/nologin
    1)oldbaby(自行创建的其他用户)2):x3):1013 4):10135): 6):/home/oldbaby7):/bin/bash
    1)列:用户名称信息
    2)列:用户密码信息(出于安全考虑第二列的x只是密码填充位 ,而真正的密码信息存放在指定000权限的系统用户密码文件)
    3)列:用户uid数值信息
    4)列:用户gid数值信息(useradd命令创建用户,默认生成用户组,用户组名称及id号和用户名称及id号一般是一致的)
    5)列:用户注释信息(可以通过usermod -c命令来添加注释信息)
    6)列:指定用户家目录(root用户的家目录就是/root本身,其他用户家目录一般是/home/其他用户名称,而类似于Nobody这种虚拟用户的家目录可以在任意目录下,但该目录下并不是真正存在其家目录,而是虚拟的状态)
    7)列:用户登陆系统方式(其中一般登陆方式为bash或者shell,而bash=shel。l nologin的登陆方式就是不能登陆的方式)

    扩展:

    当我们查看/etc/shells目录时,该目录下的所有文件为/bin/sh;/bin/bash;/usr/bin/sh;/usr/bin/bash,它们本质上其实就是一个文件,sh时bash的软链接,而/bin时usr/bin的软链接,所以他们四个文件最终均是指向bash(仅限CentOS7)

    b./etc/shadow ==>系统用户密码(密文形式)记录文件

    内容:
    1)alex 2):!! 3):18103 4):0 5):99999 6):7 7): 8) :9):
    1)oldbaby 2):!! 3):18106 4):0 5):99999 6):7 7): 8): 9):
    1)old01 2):!! 3):18106 4):0 5):99999 6):7 7): 8) :9):
    只先了解前俩列信息
    1)列:用户名称信息
    2)列:用户密码信息(当密码信息显示为!!时说明该用户暂未设置密码)

    image.png
    image.png

    注:即使是密文形势下的密码信息也不要轻易给别人查看

    扩展:生成用户登陆密码密文

    利用python模块功能
    1.安装 python-pip软件:yum install python-pip -y
    2.安装 passlib软件:pip install passlib
    优化pip源 ==>如第二步骤安装不顺利时执行优化操作
    ~/.pip/pip.conf
    中添加或修改:
    [global]
    index-url = https://mirrors.aliyun.com/pypi/simple/
    [install]
    trusted-host=mirrors.aliyun.com
    3.执行命令:python -c "from passlib.hash import sha512_crypt; import getpass; print(sha512_crypt.using(rounds=5000).hash(getpass.getpass()))"
    4.命令执行后显示passwd:输入想要设置的密码,自动生成改密码的密文信息
    5.将密文信息复制后进入用户系统密码记录文件,找到该要生成密文信息的用户信息,将密文粘贴到2)列位置。

    c./etc/group ==>系统用户组记录文件

    1.内容:
    1)oldbaby 2):x 3):1013 4):


    image.png

    2.作用:
    当将一个其他用户加入到属组用户的用户组中,则该其他用户也会具备这个属组用户的权限,但是一般情况下属组用户和其他用户的权限是一致的。
    3.创建用户组:
    usermod 添加的用户组成员 -G 要添加到的用户信息
    例如:usermod alex -G oldbaby;将alex添加到oldbaby其他用户下,成为他的用户组成员。

    d./etc/gshadow ==>系统用户组密码记录文件

    image.png

    生产环境注意事项

    一般情况下,用户记录文件/etc/passwd和用户密码记录文件/etc/shadow的行数是相同的,但当/etc/passwd文件突然多出一行信息,证明root用户创建一个新的用户,此时就要注意该用户是否为正常渠道下创建的用户,以防危险发生。

    三、 系统重要目录

    a./etc/skel ==>各用户家目录的参考目录

    1.创建用户,系统执行过程

    01.将用户信息填充到用户文件中

    1. 在/home目录下创建家目录,默认权限为700
      03.复制/etc/skel下所有文件到家目录下,包括隐藏文件。

    2.作用:

    当用户家目录被删除后,用于恢复数据信息。

    练习

    家目录所有文件包括隐藏文件均被删除,导致命令提示符无法正常显示,如何修改
    方法一:vim /etc/profile
    export PS1='[\u@\h \W]$'
    方法二:cp /etc/skel/.bash* /home/用户名称

    四、进行用户提权操作

    普通用户获得更多权限

    1.切换用户为root用户:

    su -

    2.修改文件或目录权限

    chmod:修改权限信息

    单独修改属主权限( u--user )

    chmod u+r/w/x:添加权限
    chmod u-r/w/x:删除权限
    chmod u=r/w/x:赋予权限

    单独修改属组权限(g--group)

    chmod g+r/w/x:添加权限
    chmod g-r/w/x:删除权限
    chmod g=r/w/x:赋予权限

    单独修改其他用户权限(o--other)

    chmod o+r/w/x:添加权限
    chmod o-r/w/x:删除权限
    chmod o=r/w/x:赋予权限

    利用数值进行批量修改权限信息

    chmod 需要修改成的权限数值 文件信息

    利用字符进行批量修改权限信息

    chmod a +/-/=r/w/x 文件信息
    a=all 等价于全部用户加入需要的权限

    递归修改目录及目录以下所有的文件权限

    chmod -R 要修改成的权限数值 文件信息
    --- 利用-R参数实现递归修改

    chown:修改属主属组信息

    只修改属主信息

    chown 要修改成的属主名称 目录/文件信息

    只修改属组信息

    chown .要修改成的属组名称 目录/文件信息

    全部信息修改

    chown 要修改成的属主名称.要修改成的属组名称 目录/文件信息
    当属主和属组修改名称一致时可以用.代替后一个名称,即chown 要修改成的属主名称. 目录/文件信息

    修改目录及目录下所有文件的属主属组权限一致

    chown -R 要修改的属主信息.要修改的属组信息 目录/文件信息
    --- 利用-R参数实现递归修改

    3.利用sudo方式对指定用户提权

    第一里程:root用户指定目标用户下放权限
    a.visudo
    b.进入编辑模式到101行编辑
    c.指定用户的用户名称 ALL=(ALL) 赋予指定用户的权限
    当赋予指定用户多个权限时需用,空格将俩个或多个权限命令分开。
    注:赋予用户指定权限时赋予的权限一定是一个命令,而且这个命令要以绝对路径的形式表现出来,格式即/bin/cat /etc/shadow, /bin/touch /etc/
    visudo
    oldboy ALL=(ALL) /sbin/
    , /bin/, vi
    oldboy ALL=(ALL) /bin/
    , !/bin/vim, !/usr/sbin/visudo --- 对有些危险命令进行取反配置
    oldboy ALL=(ALL) NOPASSWD: /bin/*, !/bin/vim, !/usr/sbin/visudo --- 忽略sudo密码信息

    01: 将root权力赋予哪个用户
    02: ??? 权限集中管理服务器 --- 跳板机
    03: 赋予什么特殊权力

    echo 123456|passwd --stdin oldboy
    第二个里程: 测试赋予权力
    普通用户测试执行
    sudo -l --- 查看特殊权限
    /bin/cat /etc/shadow, /bin/touch /etc/*
    sudo cat /etc/shadow --- 操作命令

    sudo -l --- 查看sudo权力
    sudo -k --- 清除sudo密码缓存
    visudo(语法检查功能) == vim /etc/sudoers
    visudo -c --- 检查/etc/sudoers文件合法性

    五、系统特殊权限位 12位权限

    setuid (4-s):     可以让普通用户获得一个命令文件属主能力 (root)
    修改命令权限:
    chmod u+s /usr/bin/cat
    chmod 4755 /usr/bin/cat
    补充: s权限位会覆盖执行权限位:
    执行权限位有x  setuid符号为小写 
    [root@oldboyedu ~]# ll `which cat`
    -rwxr-xr-x. 1 root root 54160 Oct 31  2018 /usr/bin/cat
    [root@oldboyedu ~]# chmod 4755 /usr/bin/cat
    [root@oldboyedu ~]# ll `which cat`
    -rwsr-xr-x. 1 root root 54160 Oct 31  2018 /usr/bin/cat 
    执行权限位无x  setuid符号为大写
    [root@oldboyedu ~]# ll `which cat`
    -rw-r-xr-x. 1 root root 54160 Oct 31  2018 /usr/bin/cat
    [root@oldboyedu ~]# chmod 4655 /usr/bin/cat
    [root@oldboyedu ~]# ll `which cat`
    -rwSr-xr-x. 1 root root 54160 Oct 31  2018 /usr/bin/cat
    
    setgid (2-s):           可以让普通用户获得一个命令文件属组能力 (root)
    修改命令权限:
    chmod g+s /usr/bin/cat
    chmod 2755 /usr/bin/cat
    
    sticky bit:  t=1  对目录设置
    创建一个共享目录, 目录中文件数据只能属主用户操作
    其他用户只能看不能改, 也不能删除
    [root@oldboyedu ~]# chmod o+t /share/
    [root@oldboyedu ~]# chmod 1777 /share/
    [root@oldboyedu ~]# ll /share/ -d
    drwxrwxrwt 2 root root 43 Jul 29 19:45 /share/
    

    六、用户管理相关命令:

    useradd: 创建用户
    -u : 指定uid信息
    -g : 指定用户所属主要组
    -G : 指定用户所属附属组
    -M : 不创建用户家目录
    -s : 指定用户shell登录方式 /sbin/nologin
    useradd rsync -M -s /sbin/nologin --- 创建虚拟用户
    -c : 给用户添加注释信息

    userdel: 删除用户
    userdel -r 彻底删除用户,以及家目录

    usermod:
    -u : 指定uid信息
    -g : 指定用户所属主要组
    -G : 指定用户所属附属组
    -s : 指定用户shell登录方式 /sbin/nologin
    useradd rsync -M -s /sbin/nologin --- 创建虚拟用户
    -c : 给用户添加注释信息

    groupadd: -g
    groupdel:
    groupmod: -g
    chmod:
    chown:
    passwd: --stdin
    id: uid gid 用户组成员信息
    w:
    USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
    root tty1 15:22 4:48m 0.18s 0.18s -bash
    root pts/1 10.0.0.1 18:21 4.00s 0.54s 0.00s w
    01: 登录系统用户信息
    02: 登录方式 tty本地登录 pts/1远程登录
    echo "请其他用户最近2天不要修改/home/oldboy/oldboy.txt" >/dev/pts/0
    03: 显示登录的源IP地址
    04: 登录时间
    05: 登录之后空闲时间
    06-07: 执行命令耗费CPU时长
    08: 执行了什么操作

    last: 显示用户曾经登录历史记录
    lastlog: 显示系统所有用户登录信息

    相关文章

      网友评论

          本文标题:D21-操作系统用户管理

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