chmod命令-改变文件或目录权限

222 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第16天,点击查看活动详情

一、命令详解

1.1【功能说明】

chmod命令是用球迷改变文件或目录权限的命令,但是只有文件的属主和超级用户才能够执行这个命令。

1.2【语法格式】

[root@7bfe451a2fe1 ~]# chmod --help
Usage: chmod [OPTION]... MODE[,MODE]... FILE...
  or:  chmod [OPTION]... OCTAL-MODE FILE...
  or:  chmod [OPTION]... --reference=RFILE FILE...
Change the mode of each FILE to MODE.

说明:

  • 模式有两种格式,一种是采用权限字母和操作表达式,另一种是采用数字

1.3【选项说明】

和chown一样,有一个参数很常用

  • -R 递归更改目录的用户和用户组,连同次目录下的所有文件都变更

1.4 【权限位说明】

# ls -l以列表的形式列出文件
[root@7bfe451a2fe1 ~]# ls -lh
total 8.0K
-rw-r--r-- 1 root root  5 Dec  6 21:47 a.txt
-rw-r--r-- 1 root root 40 Dec  6 21:47 md5.log

说明:

  • ls -l7列信息分别为:权限位,链接数,用户,用户组,文件大小,最后更新时间,文件名
  • 权限位的第一个字符:d表示目录、-表示文件,l 表示链接文件,b设备文件,c一次性读取设备,键盘、鼠标
权限位全称含义对应数字
rread可读权限4
wwrite可写权限2
xexecute可执行权限1
-没有任何权限0
  • 特殊权限位:t/T/s/S/X/s
  • 用户类型:u,文件所属用户;g,文件所属用户组;o,其他用户;a,所有用户
  • 字符操作:+加入,-减去,=设置

二、使用范例

2.1 使用权限字母授权

# 等号后面不接任何字符表示设置所有权限为空
chmod a= a.txt

# 设置753权限
chmod ug=r,uo=w,ugo=x a.txt

2.2 使用数字权限授权

chmod 753 a.txt

2.3 递归授权

chmod -R 753 a.txt

三、扩展知识

3.1 字母和数字的权限转换

rwxr-x-wx
421401021

# 3个一组,每组数字相加
rwx r-x -wx
421 401 021

# 对应数字权限为
753

已知r权限对应的数字为4,w权限对应的数字为2,x权限对应的数字为1,“-”权限对应的数字为0。因此rwx权限换成数字一一对应于421,然后做个加法:4+2+1=7;同理r-x的数字权限总和为5,-wx的数字权限总和为3。

四、命令总结

  • 2022/12/09 事情都是可预见的,如果一个项目像无头苍蝇一样管理,这个项目的过程和结果可想而知