LinuxShell命令详解:chmod

chmod命令

chmod命令直观的意义是改变文件的模式位.通俗来讲就是针对不同使用者来改变文件的使用权限.

先放上chmod设置对应的表达格式

`[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+`

这个会在后面进行解释.

使用者类型

权限和用户是相关联的,提及到权限就得先说明一下Linux的3种使用者类型:

  1. 文件拥有者(owner): 顾名思义,就是拥有这个文件的用户.
  2. 群组(group): 与用户在同一组别的其他用户.
  3. 其他人(others): 不在同一组别的其他用户.

其实这里还有第四种使用者,就是root,这种用户拥有所有的权限,他不会被权限系统所限制.

权限的类型

在Linux中,常用的文件权限有3种,分别是:

  1. 可读(read): 可以读取文件的实际内容.
  2. 可写(write): 可以编辑,新增,修改文件内容,但不可以删除.
  3. 可执行(execute): 可以在系统中执行该文件.

r/w/x 这三种权限主要是针对于文件内容而言,而与文件类型和文件操作无关.

使用chmod命令改变权限

使用ls -l命令后,我们可以看到文件前面都有一串类似-rwxrwxrwx的东西,这一串字符就代表了文件的权限.

三组三位rwx分别代表的是所有者(owner)/群组(group)/其他人(others)的可读(r)/可写(w)/可执行权限(x).

e.g., `-rwxrw-r--`就代表所有者拥有读/写/执行的权限,群组成员有读/写权限,而其他人只有可读权限.

接下来就讲讲怎么使用chmod命令来改变文件的权限.

使用数字改变权限

chmod用数字改变权限的格式为

chmod NUM FILE

Linux里将上面的rwx分别进行赋值,r为4,w为2,x为1.则对应使用者用户所具有的权限就是拥有权限代表数字之和.

e.g., 拥有读/写权限的话就是 4 + 2 = 6. 拥有读/执行权限的话就是 4 + 1 = 5.
      将`-rwxrw-r--`转化为数字的话就是`764`

在上面的表达格式里面可以看到[0-7],就是用数字来改变命令权限.

e.g., 将a文就的所用权限赋给所有用户,写法就是 `chmod 777 a`.
      这样所有的用户就有了读/写/执行的权限了.

使用符号改变文件权限

chmod用符号来改变权限的格式为

chmod USER OPTION AUTHORITY FILE

USER这一块可以为:

  • u: 拥有者
  • g: 群组成员
  • o: 其他人
  • a: 所有人

OPTION这一块可以为:

  • +: 添加权限
  • -: 除去权限
  • =: 设定权限

AUTHORITY这一块可以为:

  • r: 可读权限
  • w: 可写权限
  • x: 可执行权限

对于不同对象的操作用逗号隔开,中间不能添加空格.

e.g., 对于b文件,给拥有者添加rwx权限,给群组使用者和其他人添加r权限,然后给群组添加w权限,随后除去所有人的可读权限.
      chmod u=rwx,go=r,g+w,a-r b

参数介绍

  • -v, --verbose 对每一个涉及到的文件输出一个报告.
  • -c, --changes 同上,不过只有在修改时才输出.
  • -f, --silent, --quiet 屏蔽大多数的错误信息.
  • -R, --recursive 递归应用,将目录中的子内容同时应用该权限设置.
Loading Disqus comments...
Table of Contents