day21--操作系统用户管理

系统重要文件:4个
/etc/passwd:系统用户记录文件

    root     :x  :0     :0     :root    :/root          :/bin/bash
    nobody   :x  :99    :99    :Nobody  :/              :/sbin/nologin
    oldbaby  :x  :1013  :1013  :        :/home/oldbaby  :/bin/bash

01列:用户的名称
02列:用户的密码
03列:用户的uid数值
04列:用户的gid数值
05列:用户注释
06列:指定用户家目录
07列:用户登录系统方式
/etc/shadow :系统用户密码(密文)记录文件alex    :!!:18103:0:99999:7:::
    alex    :!!:18103:0:99999:7:::
    oldbaby :!!:18106:0:99999:7:::
    old01   :!!:18106:0:99999:7:::
01列:用户名称
02列:用户密码
    /etc/group   : 系统用户组记录文件
    /etc/gshadow : 系统用户组密码记录文件

扩展:利用python模块功能,生成密码密文信息
    yum install python-pip
    pip install passlib
    
    优化pip源
    ~/.pip/pip.conf

    中添加或修改: 
    [global]
    index-url = https://mirrors.aliyun.com/pypi/simple/
    
    [install]
    trusted-host=mirrors.aliyun.com

    python -c "from passlib.hash import sha512_crypt; import getpass; print(sha512_crypt.using(rounds=5000).hash(getpass.getpass()))"

系统用户重要目录
/etc/skel    --- 样板房

useradd oldboy
      01.将用户信息填充到用户文件中
      02.在home目录创建家目录   mkdir /home/oldboy(权限700)
      03.cp -r /etc/skel/.bas*  /home/oldboy   
              /etc/skel/*      /home/oldboy

  • 企业面试题:恢复命令提示
方式一: 修改PS环境变量
    vim /etc/profile
    export PS1='\[\e[32;1m\][\u@\h \W]\$ \[\e[0m\]'

方式二: 复制/etc/skel目录中的隐藏文件
    cp /etc/skel/.bash*  /home/oldboy/
如何进行用户提权操作
如何让普通用户获得更多权限

    01. 切换用户为root
        su - / su - root

    02. 修改文件或目录权限

 chmod:
        单独修改权限信息:
        · 单独修改属主权限     chmod u+r/w/x  chmod u-r/w/x  chmod u=r/w/x   u--user 
        · 单独修改属组权限     chmod g+r/w/x  chmod g-r/w/x  chmod g=r/w/x   g--group
        · 单独修改其他用户权限 chmod o+r/w/x  chmod o-r/w/x  chmod o=r/w/x   o--other


 chown
        属主信息  chown oldboy         目录/文件
        数组信息  chown .oldboy        目录/文件
        全部信息  chown oldboy.oldboy  目录/文件
                  chown nobody. oldboy02.txt


     03.利用sudo方式对指定用户提权  皇帝root  -大宝剑-  大臣  -大宝剑- 其他人
        第一个里程: 皇帝下派指定权力
        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 -c  --- 检查/etc/sudoers文件合法性
        visudo(语法检查功能) == vim /etc/sudoers
       
  • chmod练习1
创建 oldboy01.txt oldboy02.txt oldboy03.txt 
        oldboy01.txt  属主权限为只读
        oldboy02.txt  属组权限为读写执行
        oldboy03.txt  其他用户权限为只能执行
image.png
  • chmod练习2
    批量修改权限信息:
    利用数值进行修改 744
    chmod 744 01.txt

  • chmod练习3

    创建 oldboy01.txt 
        oldboy01.txt  属主权限为只读       4
                      属组权限为读写执行   7
                      其他用户权限为只能执行  1
image.png
  • chmod练习4
    创建 oldboy/ oldboy01..03
    修改目录权限为666, 保证目录下面数据权限也为666

chmod -R 777 /oldboy/ --- 利用-R参数实现递归修改目录以及目录下面所有数据权限


  • chown练习1

创建 oldboy/ oldboy01..03
修改目录权限属主为oldboy 属组为oldgirl 并且所有目录下面数据权限和目录一致

chown -R oldboy.oldgirl /oldboy --- 利用-R参数实现递归修改目录以及目录下面所有数据权限

系统特殊权限位 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 


setgid (2-s):           可以让普通用户获得一个命令文件属组能力 (root)

    修改命令权限:
    chmod g+s /usr/bin/cat
    chmod 2755 /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
    


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: 显示系统所有用户登录信息
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容