我们前面几节内容全讲的是用户和用户组,今天我们来一个与用户和用户组有着密切关系的内容,那就是文件权限。很多时候我们看到Permission deny这样的提示,一般都是权限导致的,而且这个权限对于学习好Linux也是非常重要的。下面我们就来看看文件权限的基本概念。
文件权限的概念
想要看到文件的权限,就要先来了解一个命令ls,这个就相当于在DOS系统下的dir,列出目录内容。这里面的参数很多哦,知道如何来学习这个命令吗?那就是man,不要忘记这个很好的帮助哦!
ls -l详解
我们以RHEL6系统的root用户的家目录为例来讲解。
[root@yufei ~]# ls -l
上图我分了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>下。
我们来对比一下文件与目录的RWX权限
代表字符 | 权限 | 对文件的含义 | 对目录的含义 |
r | 读 | 可以查看文件内容 | 可以列出目录里面的内容 |
w | 写 | 可以修改文件内容 | 可以在目录里面建立或删除文件或目录 |
x | 执行 | 可以执行(运行(可执行))文件 | 可以进入目录(即用cd命令能否进入某个目录) |
这七个栏位的意义我们已经说的很明白了,请大家一定要清楚的知道各个栏位所代表的意义,特别是第一栏的的文件属性(11个字符),那是整个Linux文件权限的重点之一。虽然这个rwx非常容易理解,但在实际使用中,常常会出现这样或那样的问题,对文件来说,可能大家不会有太多的问题,但对目录来说,可能问题就很多,关键一点,是要理解加实践,实践促进消化。只有这样,才能真正的把这个权限的概念搞清楚,才能为后面的学习打下一个坚实的基础。
本文关键字:一天一点,学习Linux,RHEL6,文件权限,目录权限,ls -l
ls -lRHEL6一天一点学习Linux文件权限目录权限