在 Linux
的学习过程当中,文件权限是一个很重要的概念,毕竟 Linux
中的各类操做都离不开权限的支持。php
这篇博客算是对 Linux
文件权限学习的一个简单总结。linux
Linux
的文件权限是和 用户与用户组 密切相关的一个概念,对于一个文件来讲,用户能够分为三类:vim
user
group
others
文件权限是相对于这三类用户而言的,不一样身份的用户能够具备不一样的权限。ide
使用命令 ls -l
能够获得文件的详细信息,好比:学习
drwxr-xr-x 5 root root 4096 Sep 7 19:52 dotemacs
drwxr-xr-x 6 root root 4096 Sep 3 22:34 dotfiles
drwxr-xr-x 9 root root 4096 Sep 11 10:19 emacs-kit
复制代码
咱们能够把每一条信息分为 8
个部分,好比上面第一条信息能够分为:spa
文件类型 | 权限信息 | 连结数 | 拥有者 | 用户组 | 文件容量 | 修改日期 | 文件名 |
---|---|---|---|---|---|---|---|
d |
rwxr-xr-x |
5 |
root |
root |
4096 |
Sep 7 19:52 |
dotemacs |
这里主要了解 文件类型 和 权限信息, 对其余部分有兴趣的能够自行 Google
.code
Linux
中文件能够分为 5
个类型, ls -l
输出的每条信息中的 第一个字符 就用于表示文件类型。递归
各个文件类型及其字符表示为:接口
表示字符 | 文件类型 |
---|---|
d |
目录 |
- |
文件 |
l |
符号连接等 |
b |
可供储存的接口设备 |
c |
串行端口设备,如键盘、鼠标等 |
经过 用户与用户组 概念能够了解到权限是相对于三类用户而言的,所以 ls -l
显示的权限信息也分为三组。ci
每一个文件的 权限信息 由 9
个字符组成,分为三组,分别对应 拥有者, 用户组, 其余人 拥有的权限。
对于权限信息 rwxr-xr-x
来讲, 拥有者 的权限为 rwx
, 用户组 和 其余人 的权限为 r-x
.
每组权限分为: 读权限, 写权限 和 执行权限, 分别由字符 r
, w
, x
表示。若是不具备相应的权限,就使用字符 -
表示。
所以,权限信息 rwxr-xr-x
能够理解为: 拥有者 具备 读, 写 和 执行 权限,而 用户组 和 其余人 就只有 读 和 执行 的权限。
命令 chown
和 chgrp
能够用于修改文件拥有者和所属用户组,使用方式也很简单:
# 修改文件拥有者
$ chown [-R] 帐号名称 文件或目录
$ chown [-R] 帐号名称:组名 文件或目录
# 修改文件所属用户组
$ chgrp [-R] 用户组名称 文件或目录
复制代码
参数 -R
进行递归的持续变动,即连同次目录下的全部文件都变动。
命令 chmod
用于修改文件的权限,并提供了两种修改文件权限的方式。
咱们能够用数字来表明各个权限,各个权限对应的数字为:
r:4
w:2
x:1
复制代码
每种身份各自的三个权限分数是须要累加的,例如当权限为 rwxrwx---
时,对应的分数为:
user = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others = --- = 0+0+0 = 0
复制代码
获得的文件权限数字也就为 770
, 修改权限时就可使用这个数字完成:
$ chmod [-R] 770 文件或目录
复制代码
很明显,这样修改文件权限是很麻烦的,所以 chmod
提供了另外一种更好用的方式来修改文件权限。
符号类型改变文件权限须要遵循必定的语法规则,分别须要了解的有 身份表示符, 操做表示符 和 权限表示符.
身份表示符:
表示符 | 表明的身份 |
---|---|
u |
文件的拥有者 |
g |
文件的拥有者所在用户组 |
o |
其余人 |
a |
全部用户 |
操做表示符:
表示符 | 表明的操做 |
---|---|
+ |
添加权限 |
- |
去除权限 |
= |
设定权限 |
权限表示符 就是 r
, w
和 x
.
从表示符的组成大概也能够猜到怎样修改文件权限了,好比说下面的这条指令让拥有者具备全部权限,而为用户组和其余人添加执行权限:
chmod u=rwx,go+x .vimrc
复制代码
须要注意的是: u=rwx,go+x
之间没有空格。
同一个权限对于 文件 和 目录 来讲,含义是不同的,这里来了解一下。
权限 | 文件 | 目录 |
---|---|---|
r |
能够读取文件内容 | 能够读取目录结构列表 |
w |
能够编辑修改文件内容 | 能够改动目录结构列表 |
x |
能够被系统执行 | 用户能够进入目录 (cd ) |
这里须要注意的一个权限是: 能够改动目录结构列表, 这意味着能够:
因此 w
这个权限仍是慎重使用好了。