Linux 文件权限

Table of Contents

  1. 简介
  2. 用户与用户组
  3. 文件属性
  4. 文件类型
  5. 权限信息
  6. 修改文件拥有者和所属用户组
  7. 修改文件权限
    1. 数字类型改变文件权限
    2. 符号类型改变文件权限
  8. 权限的做用
  9. 参考连接

简介

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 能够理解为: 拥有者 具备 , 执行 权限,而 用户组其余人 就只有 执行 的权限。

修改文件拥有者和所属用户组

命令 chownchgrp 能够用于修改文件拥有者和所属用户组,使用方式也很简单:

# 修改文件拥有者
$ 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, wx.

从表示符的组成大概也能够猜到怎样修改文件权限了,好比说下面的这条指令让拥有者具备全部权限,而为用户组和其余人添加执行权限:

chmod u=rwx,go+x .vimrc
复制代码

须要注意的是: u=rwx,go+x 之间没有空格。

权限的做用

同一个权限对于 文件目录 来讲,含义是不同的,这里来了解一下。

权限 文件 目录
r 能够读取文件内容 能够读取目录结构列表
w 能够编辑修改文件内容 能够改动目录结构列表
x 能够被系统执行 用户能够进入目录 (cd)

这里须要注意的一个权限是: 能够改动目录结构列表, 这意味着能够:

  • 创建新的文件与目录
  • 删除已经存在的文件与目录
  • 将已存在的文件或目录进行改名
  • 搬移该目录内的文件、目录位置

因此 w 这个权限仍是慎重使用好了。

参考连接

相关文章
相关标签/搜索