运行环境:VMware-CentOS7
本文仅介绍文件/目录的读、写、可执行权限,对于文件/目录的删除、移动权限可参考 http://blog.csdn.net/Enchanting_/article/details/73732763 n(≧▽≦)n
在终端中输入ls -l或ll即可查看当前目录下所有文件的详细信息:
在第一个字段中,我们可以看到’-‘、’d’、’r’、’w’、’x’几种字符,小编用下图来解释第一个字段:
常见字符含义如下:
1. ‘-‘——代表普通文件
2. ‘d’——代表目录文件
3. ‘r’——代表可读
4. ‘w’——代表可写
5. ‘x’——代表可执行
顾名思义,对于一个普通文件来说,读、写、可执行权限存在即可读、可写、可执行。
那么权限存在,即能被修改,chmod即修改权限的命令,常见用法如下:
chmod o+r test.c
chmod g+r test.c
chmod u+x,g+rw,o-rw test.c
chmod 705 test.c //八进制
——u即user、g即group、o即other。
由此,文件的读、写、可执行权限即理解充分,下面调研一下目录的权限问题。
打开一个目录需要什么权限?
对目录进行ls需要什么权限?
在目录中进行文件操作需要什么权限?
(一)打开一个目录需要什么权限
首先,将testDir目录权限设置为000
此时用cd命令进入目录,显然会失败:
那么在拥有哪个权限时会成功呢?由于当前用户jing就是该目录的拥有者,故9位权限位中第1-3位分别表示用户jing对该文件的读、写、可执行权限。
分别执行以下三条命令,测试哪条命令执行后能够cd进入目录:
1. chmod 400 testDir
2. chmod 200 testDir
3. chmod 100 testDir
发现当第三条命令执行后,能够进入:
而1代表的是可执行权限x,即证明可执行权限决定了用户是否能够进入一个目录。
(二)读取目录内容需要什么权限(很显然啦,是读权限,不过还是要证明一下)
经过上一步,我们成功的进入了目录testDir,且此时用户jing对该目录只具有可执行权限,显然会读取失败,即ls报错:
那么返回上级目录,给予读权限,再次测试:
如上,ls命令执行成功(由于此时目录为空,故而未打印任何信息)。
(三)在目录中创建文件需要什么权限
在上述步骤中,将当前用户对testDir目录的权限设置为了r+x,此时我们进行创建文件:
显然,权限不够。
增加当前用户对目录的w权限,再次尝试:
显然,创建成功。
总结:
1 对一个文件或目录的访问权限(读、写、可执行)取决于当前用户与该文件或目录的拥有者的关系。
○ 若为拥有者,访问权限为前三位(不包括第一位文件类型);
○ 若为所属组,访问权限为中间三位;
○ 若都不是,则为other,访问权限为最后三位。
2 三种访问权限对于目录来说,分别为
○ 读——可在目录中进行ls操作,访问目录内容
○ 写——可在目录中创建文件,即对目录内容进行修改(此处目录内容与目录中文件内容不是一个概念)
○ 可执行——可进入该目录