Skip to content

Linux 中的“文件模式”学习笔记

This content is not available in your language yet.

Linux 中的“文件模式”,就是我们用 ls -al 命令在终端查看文件信息时,在最左侧看到的一串字符如:“-rw-r—r—” ,这个就是文件的模式。

当然除了“文件模式”这个名字外,还可以叫做如下:

  • mode
  • 文件模式位(mode bits)
  • 权限位(permission bits)
  • 文件属性字段(在 ls 输出中)

下面就详细讲解下“文件模式”中每一位的作用。

文件模式字符串的第一位位文件类型,下面是 Linux 中常见的文件类型及其显示字符:

显示字符类型名称说明常见示例
-普通文件(regular file)最常见的文件类型test.txt
d目录(directory)存放文件名的特殊文件src/
l符号链接(symbolic link)指向另一个路径link → test.txt
c字符设备(character device)串口、终端等/dev/ttyUSB0
b块设备(block device)硬盘等块设备/dev/sda
p管道(FIFO)进程间通信mkfifo 创建
s套接字(socket)进程通信 socket 文件/var/run/docker.sock

文件模式符号一共有 10 位,第一位为文件类型,剩余的 9 位位权限位,10位文件模式字符划分如下:

[文件类型][用户权限][组权限][其他人权限]

Terminal window
- rwx rwx r-x
└── 其他人(others)
└────── 组(group)
└────────── 用户(owner)
└──────────── 文件类型

后9位分为3组,每一组 3 位固定顺序:r w x,分别对于:

字符含义数值
r读权限4
w写权限2
x执行权限1
-没有该权限0

基本用法:

Terminal window
chmod [选项] 模式 文件名

两种模式:“数字模式”和“符号模式”。

Terminal window
chmod 755 file

表示当前用户用于读写和执行的权限,组用户和其它用户拥有读和执行的权限。

格式:

Terminal window
chmod [u/g/o/a][+/-/=][rwx] file

含义:

字母代表
u用户(owner)
g组(group)
o其他人(others)
a所有人(all)

操作符:

符号含义
+添加权限
-删除权限
=重新设置

添加执行权限:

Terminal window
chmod +x script.sh

等价于:

Terminal window
chmod a+x script.sh

只给用户添加执行权限:

Terminal window
chmod u+x file

删除组写权限:

Terminal window
chmod g-w file

设置用户位 rw,其它清空:

Terminal window
chmod u=rw file
Terminal window
chmod -R 755 folder

⚠️注意: 目录执行权限(x)非常重要,没有 x 无法进入目录。

很多人容易混淆:

命令修改内容
chmod修改权限
chown修改所属用户
chgrp修改所属组

以上就是关于“文件模式”的相关说明。