又是极其重要的一篇,认真学习一下
Linux是一种典型的多用户系统,那么肯定会延伸出权限管理。我们平时熟悉的涉及到权限的概念有:用户、角色(或者说用户组)等,在此之上,对各个文件进行权限的划分以及管理。那么首先应该了解,linux是如何进行文件的权限管理的
了解文件属性、查看文件属性
查看文件属性
我们可以使用 ll
或者 ls -l
命令来显示一个文件的属性以及文件所属的用户和组,演示如下
逐条解释一下其中意思
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
表示可执行-
表示没有该权限
- 这是整体的概述
1
——该目录下的子目录个数- 对于并非目录的 文件 而言,将会显示1。我猜可能是因为,文件也有上级目录?
- 对于一个空的目录而言,将会显示2,。因为它包含
.
当前目录以及..
上级目录 吧? - 所以,假如某目录的该值显示为5,那么cd进去将会看到三个子目录,自己测试一下就明白了
- 第一个
xuyixiang
——owner name,或者说user name- 对应着上图的
属主权限
- 对应着上图的
- 第二个
xuyixiang
——group name- 属组权限
- 其余的信息就懒得介绍了,比较易懂
更改文件属性
chgrp
更改文件属组
简要语法
chgrp
chown
更改文件属主,也可以修改属组
chmod
更改文件权限,即那9个属性