zoukankan      html  css  js  c++  java
  • 8. 用户权限管理

    00. 课程介绍部分
        1) 常见面试题 (系统启动流程 服务开机自启方法)
    	2) 用户管理概念
    	3) 用户权限说明(*)
    	4) 企业中用户管理注意事项
    

    课程知识回顾

        1) awk命令概念说明
    	   擅长取列 擅长统计分析日志
    	   awk命令语法: awk [参数] '模式{动作}' 文件
    	   awk执行原理: BEGIN{} END{}
    	2) awk实际解决了一些问题
    	   awk匹配查询信息 ==grep
    	   ~ !~  指定列进行匹配
           awk匹配替换信息 
    	   gsub(/要替换的信息/,"替换的内容",将第几列进行替换)
    	   awk匹配删除信息 
    	   awk '!/oldboy/'
        3) awk统计分析能力
    	   累加运算: i=i+1 i++
    	   求和运算: i=i+$n  
        01 求出测试文件中 所有人第一次捐款的总额和第三次捐款总额
           显示表头 
           第一总额  第三次总额 	
           xxx        xxxx	 
    	   awk -F ":" 'BEGIN{print "第一次总额","第三次总额"};/.*/{print $2,$4}'  awk_test.txt
    	   [root@oldboyedu ~]# awk -F ":" 'BEGIN{print "第一次总额","第三次总额"}{a=a+$2;b=b+$4}END{print a,b}' awk_test.txt|column -t
           第一次总额  第三次总额
           2130        1661
    

    常见面试题

    # 系统的启动流程:
       # centos6
    	01. 加电自检
    	    检查服务器硬件是否正常
        02. MBR引导
    	    读取磁盘的MBR存储记录信息,引导系统启动
    	03. grup菜单
    	    选择启动的内核/进行单用户模式重置密码
        04. 加载系统内核信息
    	    可以更好的使用内核控制硬件
    	05. 系统的第一个进程运行起来 init (串行)
    	    init进程控制后续各种服务的启动: 启动顺序 网络服务 sshd 
    	
    	06. 加载系统运行级别文件/etc/inittab
    	07. 初始化脚本运行
    	    初始化系统主机名称 和 网卡信息
    	08. 运行系统特殊的脚本
    	    服务运行的脚本 
    	09. 运行mingetty进程
    	    显示开机登录信息界面
    	
    	
       # centos7	
    	01. 加电自检
    	    检查服务器硬件是否正常
        02. MBR引导
    	    读取磁盘的MBR存储记录信息,引导系统启动
    	03. grup菜单
    	    选择启动的内核/进行单用户模式重置密码
        04. 加载系统内核信息
    	    可以更好的使用内核控制硬件	
    	05. 系统的第一个进程运行起来 systemd (并行)
    	    服务启动的时候,同时一起启动
    	06. 读取系统启动文件
    	    /etc/systemd/system/default.target
    	07. 读取系统初始化文件
    	    /usr/lib/systemd/system/sysinit.target
    	08. 使服务可以开机自启动
    	    /etc/systemd/system 加载此目录中的信息,实现服务开机自动启动
    	09. 运行mingetty进程
    	    显示开机登录信息界面
    

    1. 用户管理章节

    1.1 概念介绍

    # 用户概念介绍:
        管理员用户  root    0      	权利至高无上
        虚拟用户    nobody  1-999 	管理进程  没家目录 不能登录系统
        普通用户    oldboy	1000+   权利有限
        
    	r read
    	w write
    	x execute
    

    1.2 文件信息

    # 文件信息:
    	r  可以读文件的内容
    	w  可以编辑文件的内容
    	x  执行这个文件(脚本文件)
    	
    	touch oldboy_root.txt -- 属主是root
    	touch oldboy.txt --      属主是oldboy
    	                         其他用户oldgirl
    # 环境准备:
    	[root@oldboyedu ~]# touch oldboy_root.txt
        [root@oldboyedu ~]# ll oldboy_root.txt 
        -rw-r--r--. 1 root root 0 Apr 23 10:02 oldboy_root.txt
        
        [root@oldboyedu ~]# touch oldboy.txt
        [root@oldboyedu ~]# ll oldboy.txt 
        -rw-r--r--. 1 root root 51 Apr 23 10:02 oldboy.txt
        [root@oldboyedu ~]# chown oldboy oldboy.txt
        [root@oldboyedu ~]# ll oldboy.txt 
        -rw-r--r--. 1 oldboy root 51 Apr 23 10:02 oldboy.txt
       
       [root@oldboyedu ~]# chmod 000 oldboy_root.txt 
        [root@oldboyedu ~]# chmod 000 oldboy.txt 
        [root@oldboyedu ~]# ll oldboy_root.txt 
        ----------. 1 root root 0 Apr 23 10:02 oldboy_root.txt
        [root@oldboyedu ~]# ll oldboy.txt 
        ----------. 1 oldboy root 51 Apr 23 10:02 oldboy.txt
    
    # 文件权限配置的结论:
    	01. root用户对所有文件有绝对的权限,只要有了执行权限,root用户可以无敌存在
    	02. 对于文件来说,写的权限和执行的权限,都需要有读权限配合
    	03. 如果想对文件进行操作,必须对文件赋予读的权限
    

    1.3 目录信息

    # 目录信息:
    	r  读目录中的文件属性信息
    	w  可以在目录中添加或删除文件数据信息
    	x  是否可以进入到目录中
    	
    # 当目录赋予读的权限
    	[oldboy@oldboyedu ~]$ ll /home/oldboy/oldboy_dir/文件 
        ls: cannot access oldboy_dir/oldboy.txt: Permission denied
        total 0
        -????????? ? ? ? ?            ? oldboy.txt   # 看不到文件的属性信息,有执行权限才可以看到属性信息
    	
        # 读取文件数据原理	
    	/           inode (5 r_x) -- block (home)   # 先看目录下有没有目标文件,inode有权限--->指向block
        home        inode (5 r_x) -- block (oldboy)
        oldboy   	inode (7 rwx) -- block (oldboy_dir)
    	oldboy_dir  inode (4 r--) -- block (目录中文件名称)
    	# 没有执行权限,所以无法进入目录
    	oldboy.txt  inode # 目录中的文件inode信息无法获取,会显示文件属性信息为??? 
    	
    # 两个权限问题:
    	/oldboy/oldboy.txt 
    	01. oldboy.txt   权限 rwx--xr--  属主如何操作文件  其他用户可以如何操作这个文件
    		属主可以读写执行,而其他用户只能读
    
    # 目录权限配置的结论:
    	01. root用户对目录信息有绝对权限
    	02. 对于目录来说,写的权限和读的权限,都需要有执行权限配合
    	03. 如何想对目录进行操作,必须对目录赋予执行的权限
    
       # 一个普通文件默认权限: 644  保证属主用户对文件可以编辑  保证其他用户可以读取文件内容
       # 一个目录文件默认权限: 755  保证属主用户对目录进行编辑  保证其他用户可以读取目录中的信息,可以进入到目录中
    

    1.4 文件目录数据设置权限的方法: umask

    # 文件目录数据设置权限的方法:
    	1) 根据用户信息进行设定 (属主 属组 其他用户)
    	   属主-user       u  
    	   属组-group      g 
    	   其他用户-other  o 
    	   chmod u+r/w/x u-r/w/x u=rw
    	   chmod g+r/w/x u-r/w/x u=rw
           chmod o+r/w/x u-r/w/x u=rw
           
    	2) 根据用户进行批量设定
    	   数值设定:
    	   [root@oldboyedu ~]# chmod 761 oldboy.txt
           [root@oldboyedu ~]# ll oldboy.txt
           -rwxrw---x. 1 root root 0 Apr 23 11:42 oldboy.txt
    
    	   字符设定:
    	   [root@oldboyedu ~]# chmod a=x oldboy.txt
           [root@oldboyedu ~]# ll oldboy.txt
           ---x--x--x. 1 root root 0 Apr 23 11:42 oldboy.txt
    
    # 问题一: 为什么创建的文件和目录权限一致
    	目录权限都是 755
    	文件权限都是 644 
    	
    	[root@oldboyedu ~]# umask 
        0022
    
    	默认文件权限: 666 - 022 = 644
    	umask数值是奇数  666 - 033 = 633 + 11 = 644
    	umask数值是偶数  666 - 022 = 644
    	
        默认目录权限: 777 - 022 = 755	
    	umask数值是奇数  777 - 033 = 744
    	umask数值是偶数  777 - 022 = 755	
       	
    # 问题二: 如何永久修改umask信息
    	vim /etc/profile
    	if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
          umask 002
        else
          umask 022  --- 可以永久修改umask数值
        fi
    

    1.5 /etc/skel 目录介绍

    #  系统中的一个特殊的目录: /etc/skel  样板房 
    	[root@oldboyedu ~]# ll /etc/skel/ -a
        total 24
        drwxr-xr-x.  2 root root   62 Apr 11  2018 .
        drwxr-xr-x. 81 root root 8192 Apr 23 12:11 ..
        -rw-r--r--.  1 root root   18 Apr 11  2018 .bash_logout   当系统退出登录状态会执行的命令
        -rw-r--r--.  1 root root  193 Apr 11  2018 .bash_profile  别名和环境变量(只针对某个用户)  家规
        -rw-r--r--.  1 root root  231 Apr 11  2018 .bashrc        别名和环境变量(只针对某个用户)  家规
     
    	useradd oldgirl --> /home/oldgirl/ --> 家目录中的数据内容会参考/etc/skel目录中的信息
    	
    # /etc/skel目录作用:
    	01. 目录中可以存储运维操作规范说明文件
    	02. 调整命令提示符信息
            #出现问题: 命令提示符: -bash-4.2$  
            -bash-4.2$ ll /etc/hosts
            -rw-r--r--. 2 root root 192 Apr 15 12:19 /etc/hosts
            -bash-4.2$ cp /etc/skel/.b* /home/new01/
            -bash-4.2$ exit
            logout
            [root@oldboyedu ~]# 
            [root@oldboyedu ~]# su - new01
            Last login: Tue Apr 23 12:23:36 CST 2019 on pts/2
    

    课程知识总结

        1) 系统的开机流程 (centos6 centos7)
    	2) 系统用户概念
    	   a 用户的分类
    	   b 用户的权限(文件-权限 目录-权限)
    	     读写数据原理
    	     / -- inode/block -- oldboy 
           c umask是什么? 控制文件或目录的默认权限
    	     如何永久修改 
        3) 系统的特殊目录 /etc/skel (样板房)
    

    课程知识回顾

        1) 系统启动流程
           1开机自检-2MBR引导???--3grub菜单(内核 进入单用户模式)---4加载内核
    	   --->5启动系统的第一个进程init/systemd--->6自动加载系统运行级别
    	   --->7加载初始化脚本--->8运行相应的自启动服务--->9加载显示登陆界面进程
    	2) 系统用户管理
           a 用户的分类
           b 数据文件权限说明(rwx)
             文件权限:(更多关注一定要有read权限)
             read  读文件内容的能力	(有了读文件block能力)
             write 写文件内容的能力(有了读文件block能力)	重命名文件???	 
    		 execute 执行文件的能力(脚本文件)
    		 补充: 文件是否可以编辑查看,和上一级或上n级目录有关
    		 读取文件数据原理 / oldboy/ oldboy01/ oldboy.txt
    		 
    		 目录权限:(更多关注一定要有执行权限)
    		 read  读取目录下文件属性信息
    		 write 可以在目录中创建或删除数据
    		 execute 可以切换进入到目录中
    	3) 文件数据权限修改方法
           chmod u/g/o + - = rwx   --- 针对不同用户进行设置
           chmod a + - = rwx       --- 全部用户统一设置权限
           chmod 644 xxx           --- 全部用户统一设置权限(更加灵活)	 
        4) 文件的默认权限是如何设置
           文件是: 644  666-umask(奇数+1)
           目录是: 755  777-umask
           umask(内置命令): 可以影响系统数据默认权限
           
    	   # umask如何永久设置
    	   vi /etc/profile
    	   if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]
    	          条件一             
    	   then
               umask 002
           else
               umask 022
           fi
    	     
    	   $UID: 显示当前登录系统用户id数值
    	   判断比较符号
    	   -gt greater than  >
    	   -lt less than     <
    	   -eq equal         ==
    	   -ge greater && equal >=
    	   -le less && equal    <=
    	   -ne not equal     <>
    	   /usr/bin/id -gn  -- 显示当前用户的组名
    	   /usr/bin/id -un  -- 显示当前用户名称
    	   
    	   if 判断的条件(有>100万) && 长得帅
    	   then
    	      娶到好看的女生
    	   else
    	      是个女的就行
    	   fi
    	   
    	5) 特殊的目录: /etc/skel 样板房
    	   用户家目录都参照样板房设计
    	   # 用户家目录中特殊文件:
    	   -rw-------.  1 oldboy oldgirl 1454 Apr 24 09:12 .bash_history   --- 历史命令记录文件
              # 曾经输入的历史命令保存位置:
               01. 保存在内存中      histroy
                   history -c     # 删除历史纪录
               02. 保存在磁盘文件中: .bash_history 
    	   
           -rw-------.  1 oldboy oldgirl  651 Apr 23 10:16 .viminfo        --- vim样式设置
    
    	   #!/bin/bash
           # 编写人: oldboy
           # 编写时间: 2019
           # 脚本作用: 
    

    2. 系统中和用户相关的文件

    # /etc/passwd*****  --- 记录系统用户信息文件 
        [root@oldboyedu oldboy]# head /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
    	01       02   03  04  05          06                  07
    	
    	第一列: 用户名
    	第二列: 用户密码信息
    	第三列: 用户的uid信息
    	第四列: 用户的gid信息
    	第五列: 用户的注释信息 
    	        mysql(manager database user)
    			www  (manager web server)
    	第六列: 用户家目录信息
    	第七列: 用户登录系统方式
                /bin/bash       --- 通用的解释器
    		   /usr/bin/sh     --- 等价于/bin/bash
    		   /usr/bin/bash
                /sbin/nologin       --- 无法登录系统
                /usr/sbin/nologin
    # /etc/shadow*      --- 系统用户密码文件
    # /etc/group*       --- 组用户记录文件
    # /etc/gshadow*     --- 组用户密码信息
    

    3. 用户相关命令

    3.1 创建用户命令

    # useradd oldboy   普通用户被创建出来
    # useradd oldboy01 -M -s /sbin/nologin 虚拟用户被创建出来
          -M 不创建家目录
    	  -s 指定使用的shell方式
    	  
    	  [root@oldboyedu oldboy]# useradd Alex01 -M -s /sbin/nologin
          [root@oldboyedu oldboy]# id Alex01
          uid=1067(Alex01) gid=1067(Alex01) groups=1067(Alex01)
          [root@oldboyedu oldboy]# grep Alex01 /etc/passwd
          Alex01:x:1067:1067::/home/Alex01:/sbin/nologin
          [root@oldboyedu oldboy]# ll /home/Alex01 -d
          ls: cannot access /home/Alex01: No such file or directory
          
    #  useradd Alex03 -u 2000
    	-u 指定用户uid数值信息
    	
         [root@oldboyedu oldboy]# id Alex03
         uid=2000(Alex03) gid=2000(Alex03) groups=2000(Alex03)
    	  
    	  
    # useradd Alex04 -u 2001 -g Alex02
    	-g 指定用户所属的主要组信息
    	  
         [root@oldboyedu oldboy]# id Alex04
         uid=2001(Alex04) gid=1068(Alex02) groups=1068(Alex02)
         [root@oldboyedu oldboy]# useradd Alex05 -u 2002 -g 1068
         [root@oldboyedu oldboy]# id Alex05
         uid=2002(Alex05) gid=1068(Alex02) groups=1068(Alex02)
    
    
    # [root@oldboyedu oldboy]# useradd Alex07 -u 2004 -g Alex02 -G Alex03
    	-G 指定用户所属的附属组信息
    	  
         [root@oldboyedu oldboy]# id Alex07
         uid=2004(Alex07) gid=1068(Alex02) groups=1068(Alex02),2000(Alex03)
    
    
    # useradd mysql -s /sbin/nologin -M -c "manager database"
    	-c 添加指定用户注释说明信息
    	  
         [root@oldboyedu oldboy]# grep mysql /etc/passwd
         mysql:x:2005:2005:manager database:/home/mysql:/sbin/nologin
    

    3.2 修改用户信息

    	# usermod
    	  -s    修改用户的登录方式
    	  -g    修改用户的主要的组信息
    	  -G    修改用户的附属组信息
    	  -c    修改用户的注释信息
    	  
    	# 修改用户shell信息
    	  [root@oldboyedu oldboy]# usermod Alex02 -s /sbin/nologin
          [root@oldboyedu oldboy]# grep Alex02 /etc/passwd
          Alex02:x:1068:1068::/home/Alex02:/sbin/nologin
    
        # 修改用户uid信息
    	  [root@oldboyedu oldboy]# usermod Alex02 -u 3000
          [root@oldboyedu oldboy]# id Alex02
          uid=3000(Alex02) gid=1068(Alex02) groups=1068(Alex02)
    

    3.3 删除用户信息

    	 # userdel
    	 # userdel -r Alex04
    	  -r 彻底删除用户以及用户的家目录
    	  
          [root@oldboyedu oldboy]# ll /home/Alex04 -d
          ls: cannot access /home/Alex04: No such file or directory
          [root@oldboyedu oldboy]# useradd Alex04
    

    3.4 用户密码设置方法

      #    交互式设置密码
    	  passwd oldboy 
      #	  非交互设置密码
    	  echo 123456|passwd --stdin oldboy
    	  
    #  企业中设置密码和管理密码的方式
    	  01. 密码要复杂12位以上字母数字及特殊符号
          02. 保存好密码信息
    	      keepass
    		  密码保险柜,本地存储密码
    	      lastpass
    		  密码保险柜,在线存储密码
    	  03. 大企业用户和密码统一管理(相当于活动目录AD)
    	      openldap域
    		  用户信息统一保存在一个用户管理服务器中 用户的家目录中的文件 用户密码 用户名称
          04. 动态密码:动态口令,第三方提供自己开发也很简单。
    

    4. 用户组相关命令

        # groupadd 创建用户组
        [root@oldboyedu oldboy]# groupadd python
        [root@oldboyedu oldboy]# useradd python -g python
        [root@oldboyedu oldboy]# id python
        uid=3003(python) gid=3003(python) groups=3003(python)   
    	
    	# groupmod 修改用户组信息
    	# groupdel 删除用户组信息
    

    5. 用户属主属组设置命令

    # chown  修改属主和属组信息
        [root@oldboyedu oldboy]# ll /etc/hosts
        -rw-r--r--. 2 root root 192 Apr 15 12:19 /etc/hosts
        [root@oldboyedu oldboy]# chown oldboy.root /etc/hosts    ---属主oldboy,属组root
        [root@oldboyedu oldboy]# ll /etc/hosts
        -rw-r--r--. 2 oldboy root 192 Apr 15 12:19 /etc/hosts
    
    
    # chown -R  递归修改目录属主和属组信息
        [root@oldboyedu oldboy]# ll oldboy_dir -d
        dr-xr-xr-x. 2 oldboy oldgirl 24 Apr 23 10:36 oldboy_dir
        
        [root@oldboyedu oldboy]# touch oldboy_dir/root.txt
        [root@oldboyedu oldboy]# ll oldboy_dir/root.txt
        -rw-r--r--. 1 root root 0 Apr 24 11:29 oldboy_dir/root.txt
        [root@oldboyedu oldboy]# id Alex01
        uid=1067(Alex01) gid=1067(Alex01) groups=1067(Alex01)
        
        [root@oldboyedu oldboy]# chown Alex01.Alex01 oldboy_dir
        [root@oldboyedu oldboy]# ll oldboy_dir -d
        dr-xr-xr-x. 2 Alex01 Alex01 40 Apr 24 11:29 oldboy_dir
        [root@oldboyedu oldboy]# ll oldboy_dir/
        total 0
        -rw-r--r--. 1 root root 0 Apr 23 10:36 oldboy.txt
        -rw-r--r--. 1 root root 0 Apr 24 11:29 root.txt
        
        
        [root@oldboyedu oldboy]# chown -R Alex01.Alex01 oldboy_dir    ---递归修改目录属主属组
        [root@oldboyedu oldboy]# ll oldboy_dir -d
        dr-xr-xr-x. 2 Alex01 Alex01 40 Apr 24 11:29 oldboy_dir
        [root@oldboyedu oldboy]# ll oldboy_dir/
        total 0
        -rw-r--r--. 1 Alex01 Alex01 0 Apr 23 10:36 oldboy.txt
        -rw-r--r--. 1 Alex01 Alex01 0 Apr 24 11:29 root.txt
    

    6. 用户信息查看命令 w

     #   a id  显示用户信息命令 (uid gid)
     
     #	 b w   显示正在登陆系统的用户信息
    	  [root@oldboyedu oldboy]# w
          11:33:31 up  6:33,  1 user,  load average: 0.00, 0.01, 0.05
          USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
          root     pts/0    10.0.0.1         08:55    3.00s  0.20s  0.00s w
    	  01       02       03               04       05        06       07
    	  
    	  01. 什么用户登录到了系统中
    	  02. 登录的方式  
    	      pts/x 远程登录系统
    		  tty1  本地登录
    		  [root@oldboyedu oldboy]# echo "请不要修改恢复hosts文件配置" >/dev/pts/1 
          03. 从哪连接的服务器 
    	  04. 登录时间
    	  05. IDLE 空闲时间
          06. 用户操作系统 消耗的CPU资源时间
    	  07. 用户在干什么
    	  
    # last  曾经登录和正在登录的账号
    # lastlog  显示linux中所有用户最近一次远程登录的信息
    

    7. 普通用户获得root权限

    # 普通用户如何像root用户一些操作管理系统:
        01. 直接切换到root账户下管理系统   篡权夺位   # su  su-
        02. 直接修改要做的数据文件权限	  # rwx
    	03. root用户赋予了普通用户权利    #  大宝剑--sudo
    	    sudo root用户授权一个能力给普通用户
    		# a.怎么进行授权:
    		  visudo
    		  93 oldboy  ALL=(ALL)       /usr/sbin/useradd, /usr/bin/rm
    		  
            # b.如何验证oldboy已经获取了root用户能力
    		  [oldboy@oldboyedu ~]$ sudo -l 
              We trust you have received the usual lecture from the local System
              Administrator. It usually boils down to these three things:
              
                  #1) Respect the privacy of others.
                  #2) Think before you type.
                  #3) With great power comes great responsibility.
              [sudo] password for oldboy: 
              User oldboy may run the following commands on oldboyedu:
                  (ALL) /usr/sbin/useradd, /usr/bin/rm
    			  
    	    # c.执行root用户可以执行的命令
              [oldboy@oldboyedu ~]$ sudo useradd Alex08
              [oldboy@oldboyedu ~]$ sudo rm -f /etc/hosts
    

    8. sudo 功能配置说明

    # a. 如何配置sudo权限信息:
    	  # visudo(推荐使用:语法检查功能) == vi /etc/sudoers
    	  [root@oldboyedu ~]# visudo -c   --- 配置好的文件语法检查
          /etc/sudoers: parsed OK
    	  
    	  # 扩展配置方法:
    	  1) 授权单个命令或多个命令
    	     /usr/sbin/useradd, /usr/bin/rm, ,
          2) 授权单个命令目录或多个命令目录 (需要排除部分特权命令)
    	     /usr/sbin/*, !/usr/sbin/visudo , /usr/bin/*
          3) 不需要输入用户密码,可以直接sudo方式执行命令
    	     NOPASSWD: /usr/sbin/*, !/usr/sbin/visudo , /usr/bin/*
    
    # b. 如何查看确认配置
    	  1.切换到授权的用户下(oldboy)
    	  2.sudo -l 
    	  3.需要输入授权的用户密码(oldboy)
    	  
    # c. 如何使用sudo功能
    	  sudo 授权的命令
    

    9. 设置特殊权限位

    #  rwx -w- --x  系统文件数据的9个权限位  系统中实际应该有12个权限位
    # setuid: ---4
    	权限设置方法:
    	chmod u+s  文件信息
    	chmod 4755 文件信息 
    	
    	[root@oldboyedu ~]# ll /bin/cat
        -rwsr-xr-x. 1 root root 54080 Apr 11  2018 /bin/cat
    	# 在属主权限位多出s信息
    # 总结: setuid权限位设置,将文件属主拥有的能力,分配给所有人
    	
    	
    # setgid: ---2
    	[root@oldboyedu ~]# chmod g+s /bin/cat
        [root@oldboyedu ~]# ll /bin/cat
        -rwsr-sr-x. 1 root root 54080 Apr 11  2018 /bin/cat
        [root@oldboyedu ~]# chmod 2755 /bin/cat
        [root@oldboyedu ~]# ll /bin/cat
        -rwxr-sr-x. 1 root root 54080 Apr 11  2018 /bin/cat
        [root@oldboyedu ~]# chmod 6755 /bin/cat
        [root@oldboyedu ~]# ll /bin/cat
        -rwsr-sr-x. 1 root root 54080 Apr 11  2018 /bin/cat
    # 总结: setgid权限位设置,将文件属组拥有的能力,分配给所有用户组
    	
    	
    # sticky bit:粘滞位: (创建一个共享目录) ---1
    	# 作用: 可以将不同用户信息放置到共享目录中,实现不同用户数据可以互相查看,但是不可以互相随意修改
    	
    	# 设置方法: 
    	chmod o+t  目录信息
    	chmod 1777 目录信息
    	
    	# 系统中已经准备好了一个共享目录,权限位1777
    	[root@oldboyedu ~]# ll -d /tmp/
        drwxrwxrwt. 10 root root 4096 Apr 25 09:35 /tmp/
    	
    	
    # 总结: 普通用户拥有root用户能力
    	01. 直接切换用户 su - (*)
    	    优势: 简单快捷
    	    劣势: 风险太高(root权限泛滥)
    		
    	02. 修改数据文件权限  9位权限位 属主信息
    	    优势: 只针对某个数据文件进行修改 只针对某个用户进行授权
    	    劣势: 需要了解权限位功能 
    
        03. 采用sudo提权方式
    	    优势: 可以利用文件编辑指定用户有哪些指定权限  sa运维部门 dev开发人员
    		劣势: 配置规划复杂
    	
    	04. 修改数据文件权限  3位权限位
    	    优势: 设置权限简单方便
    		劣势: 设置好的权限所有用户都拥有
    

    10. 如何防范系统中的重要文件不被修改(root用户也不能修改)

    # 给文件加上锁头: 
       # 目的: 使root用户也不能直接修改相应文件
    	# 设置方法: 
        chattr +i /etc/passwd
        ll /etc/passwd
        -rw-r--r--. 1 root root 4820 Apr 25 11:01 /etc/passwd
        
    	# 解锁方法:
    	chattr -i /etc/passwd
        [root@oldboyedu ~]# ll /etc/passwd
        -rw-r--r--. 1 root root 4820 Apr 25 11:01 /etc/passwd
        [root@oldboyedu ~]# lsattr /etc/passwd
        ---------------- /etc/passwd
        
        # 检查方法
        [root@oldboyedu ~]# lsattr /etc/passwd
        ---------------- /etc/passwd
    

    作业:

    作业:
    01. chmod命令使用方法进行总结
    
  • 相关阅读:
    Write an algorithm such that if an element in an MxN matrix is 0, its entire row and column is set to 0.
    旋转二维数组
    replace empty char with new string,unsafe method和native implementation的性能比较
    判断一字符串是否可以另一字符串重新排列而成
    移除重复字符的几个算法简单比较
    也来纠结一下字符串翻转
    判断重复字符存在:更有意义一点
    程序员常去网站汇总
    sublime
    针对程序集 'SqlServerTime' 的 ALTER ASSEMBLY 失败,因为程序集 'SqlServerTime' 未获授权(PERMISSION_SET = EXTERNAL_ACCESS)
  • 原文地址:https://www.cnblogs.com/j-chao/p/13448155.html
Copyright © 2011-2022 走看看