又是极其重要的一篇,认真学习一下

Linux是一种典型的多用户系统,那么肯定会延伸出权限管理。我们平时熟悉的涉及到权限的概念有:用户、角色(或者说用户组)等,在此之上,对各个文件进行权限的划分以及管理。那么首先应该了解,linux是如何进行文件的权限管理的

了解文件属性、查看文件属性


查看文件属性

我们可以使用 ll 或者 ls -l 命令来显示一个文件的属性以及文件所属的用户和组,演示如下
image.png
逐条解释一下其中意思

  • total 32 ——占用空间
    • 指的是,该文件夹下全部文件(这里有6个)所占的磁盘空间
    • 究其原因呢,linux使用block(块)来存放文件的,一个文件最少需要一个block的大小来存放。可以使用 getconf PAGESIZE 命令查看block的大小(我的机器为默认的4096,即4KB)
    • 此外,中间那一堆3位数、4位数,表示的是该文件的字节大小。那么很显然, detectByRedis.php 以及 mysqlConn.php 文件占用了两个block,其余文件占用一个block,总计8个block。那么4*8=32KB,即total 32的由来
  • -rw-r--r-- ——文件权限
    • 这一栏应该是最为重要的部分了
    • 第一个 - ,表示的是,这个东西是文件
      • 若为 d ,则表示 目录 (文件夹)
      • 若为 - ,则表示 文件
      • 若为 l ,则表示链接文件link file(比如/bin就是 l ,它指向的是/usr/bin;有点像快捷方式)
      • 若为 b ,则表示装置文件里的可供存储的接口设备(可随机存取设备)
      • 若为 c ,则表示装置文件里的串行端口设备,如键盘鼠标等一次性读取设备
    • 接下来的 rw-r--r-- ,是三个三个一组的参数,均为 rwx 三个参数的组合,三组参数分别对应的含义在下图
      • r 表示可读
      • w 表示可写
      • x 表示可执行
      • - 表示没有该权限
    • 这是整体的概述linux文件基本属性 - 图2
  • 1 ——该目录下的子目录个数
    • 对于并非目录的 文件 而言,将会显示1。我猜可能是因为,文件也有上级目录?
    • 对于一个空的目录而言,将会显示2,。因为它包含 . 当前目录以及 .. 上级目录 吧?
    • 所以,假如某目录的该值显示为5,那么cd进去将会看到三个子目录,自己测试一下就明白了
  • 第一个 xuyixiang ——owner name,或者说user name
    • 对应着上图的 属主权限
  • 第二个 xuyixiang ——group name
    • 属组权限
  • 其余的信息就懒得介绍了,比较易懂

    更改文件属性


chgrp

更改文件属组

简要语法

  1. chgrp

chown

更改文件属主,也可以修改属组

chmod

更改文件权限,即那9个属性