Linux中文件权限
Linux中每个文件都有一个特定的拥有者(一般是创建它的用户)和所属用户组,这是它的固有属性。文件可以利用这两个固有属性来规定它的拥有者或者是所属用户组内的用户是否拥有对它的访问权利,即读、写和执行的权利。此外为了提高适应性,文件还规定了其他不相关的人等的访问权限,也就是第三个固有属性。这三个固有属性和三个权利合起来,就构成了文件针对系统中所有用户的访问控制,也就构成了Linux中的文件权限体系。
1.1 使用ls命令的-l选项查看root家目录,结果如下[root@localhost ~]# ll
total6
lrwxrwxrwx. 1 root root 9 Apr 9 02:46 a ->&
drwxr-xr-x. 2 root root 6 Apr 9 05:22 day01
rw-r--r--. 1 root root 71680 Apr 2 22:52 demo01
rwxr-xr-x. 1 root root 18 Apr 9 02:59&
1.2 单独拿出一行来分析,结果如下:
图1 文件属性结构
1.3 文件权限和类型(图1中的第1个字段)
这些属性当中最重要的就是前面的文件类型和权限了,那么rwx代表什么呢?详见下图:
图2 文件类型和权限
Linux中的权限控制是当某个用户需要访问某个文件时,系统就读取这个文件的属性和权限信息与当前的UID和GID进行对比,来确定当前用户是文件的拥有者还是其所属组的用户,或者是毫无关系。然后根据这些比对结果和用户执行的动作来判断是否满足权限要求。这也引出了文件权限与命令的一些关系,因为Linux系统中一个文件是否为可执行文件是通过属性来决定的,而不是后缀名。
首先说说“r”权限,顾名思义(read简写)
对目录而言,“r”表示的是遍历目录中的所有文件名和子目录名,仅仅是遍历文件名而已,并不是实际内容。
例:
[user1@localhost demo2]$ ll
total 0
[user1@localhost demo2]$ mkdir dir1 #在当前目录中创建目录dir1
[user1@localhost demo2]$ ll
total 0
drwxrwxr-x. 2 user1 user1 6 Apr 10 00:30 dir1 #看出dir1的权限是775
[user1@localhost demo2]$ touch ./ ./ #在目录dir1中创建a和b两个文件
[user1@localhost demo2]$ ll ./dir1/
total 0
-rw-rw-r--. 1 user1 user1 0 Apr 10 04:21& #查看a和b文件
-rw-rw-r--. 1 user1 user1 0 Apr 10 04:21&
[user1@localhost demo2]$ chmod -r dir1/ #去除dir1目录的“r”权限
[user1@localhost demo2]$ ll
total 0
d-wx-wx--x. 2 user1 user1 32 Apr 10 04:21 dir1 #“r”权限去除成功
[user1@localhost demo2]$ ll ./dir1/
ls: cannot open directory ./dir1/: Permission denied #再次查看dir1中的内容被拒绝
#提示权限不够
#######这说明“r”权限在目录中的控制作用,要查看目录中文件列表,必须具有“r”权限
对于文件而言,“r”表示的是遍历文件中的实际内容,文件中不管有没有内容,拥有“r”权限,在操作的时候都会去遍历一遍。
例:[user1@localhost demo2]$ ll
total 0
[user1@localhost demo2]$ echo "helloword" & #创建文件,并写入内容
[user1@localhost demo2]$ ll
total 4
-rw-rw-r--. 1 user1 user1 10 Apr 10 05:45& #查看文件权限664
[user1@localhost demo2]$ cat& ##查看文件的内容
helloword
[user1@localhost demo2]$ chmod -r& #去除的“r”权限
[user1@localhost demo2]$ ll
total 4 #“r”权限已被取消
--w--w----. 1 user1 user1 10 Apr 10 05:45&
[user1@localhost demo2]$ cat& #再次查看文件内容
cat:&: Permission denied #访问被拒绝,提示权限不够
######这就是“r”权限对于文件的访问控制
######执行者要查看文件的内容,就必须具有该文件的“r”权限
接着说说“w”权限,(write的简写)
对目录而言,“w”权限就是说可以在该目录中修改信息,什么是修改信息呢?在目录中信息就是各种文件的名称,修改信息就是与该目录下的文件名或子目录名的变动有关的操作,注意:指的是名字。具体如下:
1)在该目录下新建新的文件或子目录。(就是增加文件名)[user1@localhost demo2]$ mkdir dir2;ll #在demo2目录中创建dir2目录并查看其权限
total 0
drwxrwxr-x. 2 user1 user1 6 Apr 10 03:33 dir2 #当前dir2权限为775
[user1@localhost demo2]$ touch ./;ll ./dir2/ #测试在dir2中创建a.txt文件
total 0
-rw-rw-r--. 1 user1 user1 0 Apr 10 03:34& #在dir2中成功创建a.txt文件
[user1@localhost demo2]$ chmod -w dir2/ #去掉dir2目录的“w”权限
[user1@localhost demo2]$ ll
total 0
dr-xr-xr-x. 2 user1 user1 19 Apr 10 03:34 dir2 #“w”权限去除成功
[user1@localhost d
本文发布于:2024-02-02 06:21:13,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170682607241945.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |