五、文件权限管理

文件权限是系统最底层安全设定方法之一,保证文件可以被可用的用户做相应操作

<<…文件权限的查看…>>

  ls -l file           ## 查看文件属性 “ll”是“ls -l”的别名
  ls -ld dir           ## 显示目录本身属性
  ll file            ## “ll”是系统定义词
  ll -d dir           ## 显示目录本身属性
在这里插入图片描述

<<…文件权限的读取…>>

文件类型和权限、连接点、所有者、所属组、文件容量、最近修改日期、文件名
  -  rw- r- - r - - 1 root root 0 Jul 21 09:18 file
  [1]  [2]   [3] [4]  [5] [6]   [7]   [8]

  【1】文件类型
   -  ##空文件,或者文本
  d  ##目录
  l  ##软连接
  s  ##socket套接字
  b  ##block块设备
  c  ##字符设备

  【2】文件权限
  r w- | r w- | r- -
   1  2  3
  1. [u] 文件所有者对文件能做什么操作
  2. [g] 文件所有组对文件能做什么操作
  3. [o] 其他人能对文件做什么操作

  【3】
   对文件:文件硬链接个数(文件内容被记录的次数)
   对目录:目录中子目录的个数

  【4】
   文件所有者
  【5】
   文件所有组
  【6】
   对文件:文件大小
   对目录:目录中子 文件元数据(matedate可理解为文件属性)大小
  【7】
   文件内容被修改的时间
  【8】
   文件名

<<…改变文件所有人和所有组…>>

  chown | chgrp
  chown    username  file | dir
  chown    user.group  file | dir
  chown -R  user.group  dir

  chgrp     group   file | dir
  chgrp  -R     group   dir    ## - R表示递归

<<…改变文件的权限…>>

   1.对文件权限的理解
   r
      对文件:是否可以查看文件中的内容 cat file
      对目录:是否可以查看文件中的子文件或子目录
   w
      对文件:是否可以更改文件中的内容
      对目录:是否可以更改目录中子目录或子文件的元数据进行更改
   x
      对文件:是否可以通过文件名调用文件内记录的程序
      对目录:是否可以进入目录
  

   2.更改方式
   chmod  < u | g | o > < + | - | = > < r | w | x >  file/dir
   chmod  u+x   /mnt/file1
   chmod  g-r   /mnt/file2
   chmod  ug-r   /mnt/file3
   chmod  u-r,g+x  /mnt/file4
   chmod  -r    /mnt/file5
   chmod  o=r-x   /mnt/file6

   rwx    210   r=4   w=2   x=1
   r - x | r - - | - - x
   5   4   1
   chmod  541 /mnt/file1
   7= r w x
   6= r w -
   5= r - x
   4= r - -
   3= - w x
   2= - w -
   1= - - x

<<…umask…>>

   umask         ## 系统建立文件时默认保留的权限
   umask   022   ## 建立目录时默认预留权限
   在这里插入图片描述
   >>默认建立的目录都是755
     
  
   111            ## 文件系统默认保留权限
   在这里插入图片描述
   >>默认建立的文件都是644,在目录755的基础上再减111
  
  
   永久更改umask
   vim /etc /profile      ## 系统配置文件
   59 if [ $UID -gt 199 ] && [ “id -gn” = “id -un” ]; then
   60 umask 002       ## 普通用户的umask
   61 else
   62 umask 077       ## 超级用户的umask
   63 fi
  
   vim /etc /bashrc       ## shell配置文件
   70 if [ $UID -gt 199 ] && [ “id -gn” = “id -un” ]; then
   71 umask 002
   72 else
   73 umask 077
   74 fi
   需要同时更改两个文件,然后source  /etc/profile  /etc/bashrc 重新读取两文件使其立即生效

<<…特殊权限…>>

   1.Sticky   " t "      ## 粘滞位
    作用:
      只针对目录生效,当一个目录上有sticky权限时在这个目录中的文件只能被文件的所有者删除
    设定方式:chmod o+t dir
         chmod 1xxx dir

   2.SGID   ‘t’      ## 强制位
    作用:
      对文件:只针对于二进制可执行文件,当文件上有sgid时任何人执行此文件产成的进程都属于文件的所属组
      对目录:当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组

    设定方式:chmod g+s file | dir
         chmod 2xxx file | dir

   3.SUID   ‘t’      ## 冒险位
    作用:
      只针对于二进制可执行文件,当文件上有suid时任何人执行这个文件中记的程序产生的进程都属于文件的所有者

    设定方式:chmod u+s file
         chmod 4xxx file

     PS : (1) 命令执行者要对改程序拥有x(执行)权限
        (2) 命令执行者在执行该程序时获得该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主
        (3) SUID和SGID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效

<<…ACL权限列表…>>

   ACL         ##让特定用户对特定文件拥有特定权限

   1.ACL列表查看
    - rw-rwxr- - +  1  root  root  0 Jul 21 15:45  file     ## 有"+"表示ACL开启

    getfacl  file               ## 查看ACL开启的文件的权限

   2.ACL列表的管理
    setfacl  -m u:username:rwx  file     ## 设定username对file拥有rwx权限
    setfacl  -m g:group:rwx  file       ## 设定group组成员对file拥有rwx权限
    setfacl  -x u:username  file       ## 从ACL列表中删除username
    setfacl  -b  file            ## 关闭file上的ACL列表

   3.ACL默认权限
    ACL默认权限只针对目录设定
    “ACL权限只针对设定完成之后新建立的文件或目录生效,而已经存在的文件是不会继承默认权限”
    setfacl  -m d:u:student:rwx  /mnt/westos

猜你喜欢

转载自blog.csdn.net/qq_35197351/article/details/82942692