一、文件权限的意义
r :可以读这个文件的具体内容;
w :可以编辑这个文件的内容,包括增加删除文件的具体内容;
x :文件就具有了可执行的权限-------注意:这里和window不一样,在win中,文件的可执行权限是通过扩展名表现出来的,如exe、bat等,但是在linux中文件的可执行权限是通过这个x决定的,与文件名没有什么关系。
*当你对一个文件具有w权限时,你可以对文件的内容进行编辑,但是并不具备删除该文件的权限
二、目录权限的意义
r : 可以查看此目录下的完整文件列表信息(当拥有r权限,但是没有x权限时,可以看到名称但是其他信息会以?代 替,当没有r权限时,完成不会有显示)。
w :可以对此目录下的所有的文件及目录进行相关的更改,也就是可以更改这个目录下的结构列表(这个要重视) 具体权利如下:
(1) 可以在此目录下创建新的文件或目录;
(2)可以在此目录下删除存在的文件或目录(不论该文件的权限是什么,这点要格外注意!!!!)
(3)可以重命名及改变文件或目录的位置。
x :目录没有可执行的权限,因此目录中x的功能就是允许别的用户进入这个目录
三,example
[email protected]:~$ sudo su
[sudo] password for fanfan:
[email protected]PC:/home/fanfan# cd /tmp
[email protected]:/tmp# mkdir testing
[email protected]:/tmp# chmod 744 testing
[email protected]:/tmp# touch testing/testing
[email protected]:/tmp# chmod 600 testing/testing
[email protected]:/tmp# ls -ald testing testing/testing
drwxr--r-- 2 root root 4096 1月 28 19:09 testing
-rw------- 1 root root 0 1月 28 19:09 testing/testing
[email protected]:/tmp# su fanfan
[email protected]:/tmp$ ls -l testing
ls: 无法访问testing/testing: 权限不够
总用量 0
-????????? ? ? ? ? ? testing
[email protected]:/tmp$ cd testing
bash: cd: testing: 权限不够
[email protected]:/tmp$ sudo su
[email protected]:/tmp# chown fanfan testing
[email protected]:/tmp# su fanfan
[email protected]:/tmp$ cd /temp/testing
bash: cd: /temp/testing: 没有那个文件或目录
[email protected]:/tmp$ cd testing
[email protected]:/tmp/testing$ ls -l
总用量 0
-rw------- 1 root root 0 1月 28 19:09 testing
[email protected]:/tmp/testing$ rm testing
rm:是否删除有写保护的普通空文件 "testing"? y
[email protected]:/tmp/testing$
四 注意事项
<1> 这里有一个问题就是,有时候我们想和别人(同组,或other)共享一个文件的时候,你在改变了文件的权限后,对方还是不能看到的,因为别人进不了你的用户主目录,默认没有x权限。如果在这时你为了能让他看到这个文件而开放了x权限,别人就会进入这个目录里查看这个文件或者修改这个文件。如果这个人认为文件很好,想cp一份,那么他是没有权限的,以为目录默认也是没有w权限的,这里我们要特别注意:最好不要直接开放w权限,因为这样别人就可以随意更改此目录下的列表了(包括删除,删除是很危险的)。因此我们可以把这个文件cp一份,放到具有w权限的第三方目录下,对方也从这里cp,这样我们的主目录就不会受到任何影响了。
<2>这里有一个好笑的例子,一个系统管理员建了一个 重要.txt 的文件,为了防止别人对这个文件有所企图,于是乎管理员设置权限为-rex------,这个管理员认为万无一失了,就把这个文件随便放了一个目录下,心想就算别人看见这个文件也什么也干不了,但是如果此时这个目录具有w的权限,那么别人虽然不能对这个文件进行任何操作,但是他却对这个文件具有删除的权限,这个可是致命的。
五 文件种类和扩展名
(1)文件名
一般文件 - 纯文本文件 二进制文件 数据格式文件
目录 d(directory) 目录
连接文件 l(link) 类似于windows快捷方式
块设备文件 b(block) 存储数据,以提供系统随机访问的接口设备
字符设备文件 c(character) 串行端口的接口设备
套接字 s(sockets) socket
管道 p(pipe) 管道
(2)扩展名
一个linux文件能不能被执行,与它第一列的10个属性有关,与文件名根本一点关系也没有,但是我们仍希望可以由扩展名来了解文件是什么东西
.sh 脚本或批处理文件
*Z *.tar *.tar.gz *.zip *.tgz 压缩文件
(3)在Linux下面,默认使用Ext2/Ext3文件系统时,针对文件的文件名长度限制为:
单一文件或目录的最大容许文件名为255个字符
包含完整路径名称及目录的完整文件名为4096个字符
我们希望Linux的文件名可以一看就知道该文件是做什么的,所有文件名通常很长