一、linux文件权限
1.查看文件权限
用 ls -l 查看当前目录下文件权限
各部分对应的内容:
1. 第一个字符代表这个文件类型
- [d]:目录
- [-] :文件
- [l]:连结档(link file);
- [b]:装置文件里面的可供储存的接口设备(可随机存取装置)
- [c]:装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)
2. 接下来9个符号为文件权限
- r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等
- w(write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件)
- x(execute):该文件具有可以被系统执行的权限
- -:无权限
前三个符号是文件拥有者权限、中间三个符号是文件拥有者权限、后三个符号为其他人权限
上图表示文件拥有者可读可写,所属群组和其他人仅可读
需要注意的是:因为在Windows底下一个文件是否具有执行的能力是藉由『扩展名』来判断的,例如:.exe, .bat, .com 等等,但是在Linux底下,文件是否能被执行,则是由是否具有『x』这个权限来决定的!跟档名是没有绝对的关系的!而当你对一个文件具有w权限时,你可以具有写入/编辑/新增/修改文件的内容的权限,但并不具备有删除该文件本身的权限!对于文件的rwx来说,主要都是针对『文件的内容』而言,与文件档名的存在与否没有关系喔!因为文件记录的是实际的数据。
3. 文件拥有者和群组
- 文件拥有者:由于Linux是个多人多任务的系统,因此可能常常会有多人同时使用这部主机来进行工作的情况发生,为了考虑每个人的隐私权以及每个人喜好的工作环境,因此,这个『文件拥有者』的角色就显的相当的重要了!例如将文件放在自己的home目录下且设为只有你有读和修改的权限,别人就再无法查看改文件内容。
- 群组:群组最有用的功能之一,就是可以用在多人开发资源的时候!举例来说,假设有两组团队在一个主机里面,第一个组别为a,第二个组别为b,组下分别多人,就可以由简易的文件权限设定,就能限制非自己群组的其他人不能够阅览内容!而且亦可以让自己的群组成员可以修改所属群组所建立的文件。 (另外:同一个人可以属于多个群组)
2. 目录的r w x
可能有人已经理解普通的文件rwx的意义,但是目录的rwx有什么用呢?
1. r: 表示具有读取目录结构列表的权限,表示可以查询该目录下的文件名数据。所以就可以利用ls 这个指令将该目录的内容列表显示出来。
2. w: 这个写入权限尤为重要,目录有了 w 权限,相当于一下权限:
- 建立新的文件和目录
- 删除底下的文件和目录(无论文件的权限如何)
- 对文件和目录进行改名
- 对目录下的文件进行移动
3. x: 目录的x代表的是用户能否进入该目录成为工作目录的用途,即可以用cd命令进入该目录。
二.修改文件权限
1.chgrp 修改文件所属群组
修改成功
修改失败:没有该组
2.chown修改文件拥有者
将文件拥有者修改为root
同时修改所属组和文件拥有者,将两者用 :分隔开
3 chmod 修改文件权限
修改权限的设定方法有两种,分别可以使用数字或者是符号来进行权限的变更。
1. 数字类型
比如要将文件修改为rwxrwxr- - 则
owner = r w x = 4 + 2 + 1 = 7
group = r w x = 4 + 2 + 1 = 7
other = r - - = 4 + 0 +0 = 4
修改成功
2. 符号类型
每次修改权限还要去计算可能有些麻烦,则可以使用符号类型去修改。
u: user , g: group , o: other , a: all
如这样:
还要+ 和 -
将所有人加上x权限
完