一天一点学习Linux之文件与目录权限的基本概念【对工作目录(即当前目录)的说明】

时间:2022-01-18 16:43:20

我们前面几节内容全讲的是用户和用户组,今天我们来一个与用户和用户组有着密切关系的内容,那就是文件权限。很多时候我们看到Permission deny这样的提示,一般都是权限导致的,而且这个权限对于学习好Linux也是非常重要的。下面我们就来看看文件权限的基本概念。

文件权限的概念

想要看到文件的权限,就要先来了解一个命令ls,这个就相当于在DOS系统下的dir,列出目录内容。这里面的参数很多哦,知道如何来学习这个命令吗?那就是man,不要忘记这个很好的帮助哦!

ls -l详解

我们以RHEL6系统的root用户的家目录为例来讲解。
[root@yufei ~]# ls -l

一天一点学习Linux之文件与目录权限的基本概念【对工作目录(即当前目录)的说明】

上图我分了7栏,我们来看看他们是什么意思。

命令下面第一行total 84

这个表示的是“所查询目录里面全部文件所分配的块大小总和(不包括下层目录里面的内容),以K为单位”这个可以通过-s参数来查询到。请记住,不是全部文件块大小的总和,而只针对当前目录里面的文件和目录。

第一栏表示的是文件的属性

这一栏的11个字符表示的意思如下
第一个字符表示的是文件的性质(文件、目录、连接文件等等),如:
.表示的是隐藏文件
d表示目录
-表示文件
l是一个连接文件(相当于快捷方式(文件)
b是块设备文件(block)。一般放在/dev目录下,设备文件是普通文件和程序访问硬件设备的入口,是很特殊的文件。没有文件大小,只有一个主设备号和一个辅设备号。一次传输数据为一整块的被称为块设备,如硬盘、光盘等。最小数据传输单位为一个数据块(通常一个数据块的大小为512字节)
c是字符设备文件(character)。一般放在/dev目录下,一次传输一个字节的设备被称为字符设备,如键盘、字符终端等,传输数据的最小单位为一个字节。
p是命令管道文件
s是sock文件

第二到第十个字符表示的是权限
他们三个为一组,共分三组
第一组表示的是文件的所有者的权限
第二组表示的是文件的所属组的权限
第一组表示的是其他人的权限

我们再来看看文件具体权限表示的意思
r  可读       可以查看文件内容
w 可写       可以修改文件内容
x  可执行    可以执行(运行(可执行))文件
注:rwx这三个的位置不能改变,没有就用-代替。

最后一个字符点(.)表示的是具有SELinux的安全上下文。请参考:RHEL6中,文件权限后面一个点的含义

第二栏表示的是有多少文件连接到inode(索引节点)

如果是一个文件,此时这一字段表示这个文件所具有的硬链接数,
如果是一个目录,则此字段表示该目录所含子目录的个数。
如果你不明白,没有关系,我们后面在再到文件系统的时候,还会讲到这个inode,这个可以先了解。

第三栏表示的是文件的所有者

第四栏表示的是文件的所属组

第五栏表示的是文件的大小(以字节为单位)

第六栏表示的是文件的创建日期或修改日期

第七栏表示的是文件名

我们来举个例子
[root@yufei ~]# ls -l install.log
-rw-r--r--. 1 root root 31537 Dec 15 22:43 install.log

-就表示install.log是一个普通文件
rw-表示root用户对install.log这个文件有读写权限
r--表示root用户组对install.log这个文件有读权限
r--表示其他人对install.log这个文件有读权限
这个文件就一个硬链接数
这个文件是属于root用户和root用户组的
文件的大小为31537字节
创建或修改的日期是12月15号22:43
文件名为install.log

目录权限的概念

其实目录的权限和文件的权限是差不多的,也是rwx,下面我们就来看看这rwx对目录而言是什么意思。

r(read contents in directory):读取目录里面的内容。
所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件。所以我们就可以利用ls这个指令将该目录的内容列表显示出来。

w(modify contents of directory):编辑目录里面的内容。
主要包括
1、创建新的文件与目录
2、删除目录下面的文件与目录(无论该文件的权限是什么,这一点很重要)
3、对目录里面的文件与目录重命名
4、移动目录里面的文件与目录的位置

x(access directory):代表的是用户能否进入该目录(即用cd命令能否进入某个目录)【能进入的目录就可以成为工作目录】。


注释:

对工作目录(即当前目录)的说明

当前目录这个概念是对一个进程来说的。下图中的路径C:\Users\jdktel>就是cmd.exe进程的当前目录。cmd.exe进程的当前目录对cmd.exe进程来说的一个作用,就是在下图中的窗口里执行命令如sqlplus /  as sysdba时,cmd.exe进程就会先从cmd.exe进程的当前目录即路径C:\Users\jdktel>里搜索有没sqlplus.exe这个程序,没有才会去搜索环境变量PATH里的路径。再比如,对于在下图中的窗口里执行命令如exp ‘ /  as sysdba’ file=tm.dmp tables=tt时,tm.dmp和默认日志都是放在exp.exe进程的当前目录C:\Users\jdktel>下。

一天一点学习Linux之文件与目录权限的基本概念【对工作目录(即当前目录)的说明】

我们来对比一下文件与目录的RWX权限


代表字符 权限 对文件的含义 对目录的含义
r 可以查看文件内容 可以列出目录里面的内容
w 可以修改文件内容 可以在目录里面建立或删除文件或目录
x 执行 可以执行(运行(可执行))文件 可以进入目录(即用cd命令能否进入某个目录)

这七个栏位的意义我们已经说的很明白了,请大家一定要清楚的知道各个栏位所代表的意义,特别是第一栏的的文件属性(11个字符),那是整个Linux文件权限的重点之一。虽然这个rwx非常容易理解,但在实际使用中,常常会出现这样或那样的问题,对文件来说,可能大家不会有太多的问题,但对目录来说,可能问题就很多,关键一点,是要理解加实践,实践促进消化。只有这样,才能真正的把这个权限的概念搞清楚,才能为后面的学习打下一个坚实的基础。

本文关键字:一天一点,学习Linux,RHEL6,文件权限,目录权限,ls -l

ls -lRHEL6一天一点学习Linux文件权限目录权限 一天一点学习Linux之文件与目录权限的基本概念【对工作目录(即当前目录)的说明】