Linux chmod命令

更多资料下载、嵌入式视频教程,加群:398294860,视频教程:www.wanglitao.taobao.com

chmod命令用来改变文件或目录的权限。Linux下的文件对不同的用户,访问权限是不同的,按照权限划分,Linux用户可以分为三种:

  • 文件所有者(owner)
  • 所属用户组(group)
  • 其他用户(other users)

Linux使用9位8进制数字,分别表示以上三种用户的访问权限:读、写和执行权限。使用ls -l命令,可以看到不同用户对某个文件的访问权限:

# ls -l
total 8
-rw-r--r-- 1 root root    1 Feb 12 18:07 main.c
drwxr-xr-x 3 root root 4096 Feb 12 23:43 test

读写权限可以使用一个3个bit位的8进制数字表示:读权限的值为4、写的权限值为2、可执行的权限值为1,如果一个文件是可读可写可执行的,那么这个权限值就是4+2+1=7,对以上三种用户都是可读可写可执行的,那么就可以使用0777来表示这个文件的读写权限。

除了使用数字表示读写权限,也可以使用上面的 drwxr-xr-x 10位字符来表示。最高位表示文件类型:d表示是一个目录,为空(使用空格占位符)的话表示是一个普通文件。剩余的9位,每3位分别表示一种用户的读写权限。

使用chmod可以修改一个文件或目录的访问权限:

# chmod [-R] xyz 文件或目录

-R参数是可选的,可以进行递归地持续更改,将指定目录下所有的子目录或文件都修改。

将上面的main.c文件的权限改为0777,对所有用户可读可写可执行:

# ls -l
-rw-r--r-- 1 root root    1 Feb 12 18:07 main.c

# chmod 0777 main.c 

# ls -l
-rwxrwxrwx 1 root root    1 Feb 12 18:07 main.c

除了直接使用数字修改,chmod还可以使用u(user)、g(group)、o(other)、a(all)和+(加入)、-(删除)、=(设置)跟rwx搭配来对文件的权限进行更改。

将main.c中other users用户的可执行权限去掉,可以使用下面的命令:

# ls -l
-rwxrwxrwx 1 root root 1 Feb 12 18:07 main.c

# chmod o-x main.c 
# ls -l
-rwxrwxrw- 1 root root 1 Feb 12 18:07 main.c

将main.c所属用户组权限,由rwx修改为只读:

# ls -l
-rwxrwxrw- 1 root root 1 Feb 12 18:07 main.c

# chmod g=r main.c 
# ls -l
-rwxr--rw- 1 root root 1 Feb 12 18:07 main.c

给main.c所属用户组添加可执行权限:

# ls -l
-rwxr--rw- 1 root root 1 Feb 12 18:07 main.c

# chmod g+x main.c 
# ls -l
-rwxr-xrw- 1 root root 1 Feb 12 18:07 main.c
《Linux三剑客》视频教程,从零开始快速掌握Linux开发常用的工具:Git、Makefile、vim、autotools、debug,免费赠送C语言视频教程,C语言项目实战:学生成绩管理系统。详情请点击淘宝链接:Linux三剑客