Linux chmod 命令

bat365在哪进 2025-07-26 13:57:59 admin 3632 750
Linux chmod 命令

Linux chmod ( change mode ) 命令用于修改文件或目录的读、写、执行访问控制权限。

chmod 命令可以修改三类读、写、执行访问控制权限,具体为:文件所有者的读、写、执行访问控制权限,组的读、写、执行访问控制权限,其他用户的读、写、执行访问控制权限。

Linux / Unix 系统的文件访问权限分为三类,具体解释说明:

文件所有者(u, user 或 owner)、用户组(g, group)、其它用户(o, other Users),全部用户使用 a(all)表示。

每一类的权限由三个比特位表示,从左至右分别表示(read,读)、(write,写)与(execute,可执行)。

权限可以使用字符表示:r 表示(read,读)、w 表示(write,写)与 x 表示(execute,可执行)。

权限也可以使用八进制数字表示:4 表示(read,读)、2 表示(write,写)与 1 表示(execute,可执行)

如果相应的权限位显示为 -,则表示不具有相应的权限(可使用 ls -l 命令查看具体权限)。

具体权限的划分如图所示:

解释:file type 为 - 时表示文件,为 d 时表示目录

chmod 命令的定义解释

在 Linux 或 FreeBSD 系统中,chmod ( change mode ) 用于命令用于修改文件或目录的读、写、执行访问控制权限。chmod 命令一次可以修改一个文件,多个文件或者是目录的访问控制权限。

权限位解释说明

1、文件权限位说明

权限字符对文件的影响

读权限-文件不可读,无法查看文件内容

r文件可读,可查看文件内容

写权限-文件不可写,无法更改文件内容

w文件可写,可更改文件内容

执行权限-文件不可被执行

x文件可以被执行

s如果在用户三元权限中,则设置 setuid 位。如果在组三元权限中,则设置 setgid 位,这也意味着设置了 x 标志。当在文件上设置 setuid 或 setgid 标志时,则以文件的所有者和(或)组权限执行

S与 s 相同,但未设置 x 标志,这个标志很少用于文件

t如果在其他用户三元权限中,则设置 sticky 位,这也意味着设置了 x 标志,这个标志在文件上是无用的。

T与 t 相同,但未设置 x 标志,这个标志在文件上是无用的。

2、目录权限位说明

权限字符对文件的影响

读权限-无法显示目录

r可以显示目录的内容

写权限-不能更改目录的内容

w目录的内容可以修改

执行权限-命令不能转到该目录

x可通过cd 命令进入目录

s如果在用户三元权限中,则设置 setuid 位。如果在组三元权限中,则设置 setgid 位,这也意味着设置了 x 标志。当在目录上设置 setgid 标志时,在其中创建的新文件将继承目录组ID (GID),而不是创建该文件的用户的主组ID。setuid对目录没有影响

S与 s 相同,但未设置 x 标志,这个标志在目录上是无用的

t如果在其他用户三元权限中,则设置 sticky 位,这也意味着设置了 x 标志。当在目录上设置 sticky 位时,只有文件的所有者、目录的所有者或管理用户可以删除或重命名目录中的文件。。

T与 t 相同,但未设置 x 标志,这个标志在目录上是无用的。

chmod 命令语法

chmod [选项]... 符号模式[,符号模式]... 文件列表...

chmod [选项]... 八进制模式字符串 文件列表...

chmod [选项]... --reference=参考文件 文件列表...

[选项]:选项带着中括号 [] 表示可选,使用时可以提供,也可以不提供。

chmod 命令的符号模式语法

chmod 命令的符号模式的具体语法:

chmod [选项]... (ugoa...)(-+=)(权限...)[, (ugoa...)(-+=))(权限...)]... 文件列表...

1、第一组符号[ugoa...]是用户符号,定了可以修改哪类用户对文件的访问控制权限:

用户符号

解释说明

u

user owner 文件所有者

g

group 用户组

o

other users 其他所有用户

a

all 所有用户,等同于 ugo

注意:如果省略用户符号,则默认为 a,且不影响 umask 命令设置的权限。

2、第二组符号([-+=])是操作符号,它定义了是要删除、添加或设置权限:

操作符号

解释说明

-

移除、删除指定的权限

+

添加指定的权限

=

将当前权限更改为指定的权限,如果在=符号之后没有指定权限,则删除给定用户的所有权限

注意:权限(perms…)可以使用 0 或 r,w, x, x, s 和 t 字母中的一个或多个显式设置。当为多个用户类([,…])设置权限时,使用逗号(不含空格)分隔符号模式。

chmod 命令的八进制模式语法

chmod 命令的八进制模式的具体语法:

chmod [选项]... 八进制模式字符串 文件列表...

八进制模式字符串 由 3 或 4 个八进制数组成。

使用 3 位八进制数字

1、当使用 3位八进制数字时,第一个数字表示文件所有者的权限,第二个数字表示组的权限,最后一个数字表示其他用户的权限。

每个写、读、执行权限的八进制数值如下:

八进制数值

对应权限

对应符号

4

读权限

r

2

写权限

w

1

可执行权限

x

0

不具有任何权限

注:特定用户类的权限数值由各权限值的总和表示。

要在八进制模式下找出文件的权限,只需计算所有用户类的总数。例如,要赋予文件的所有者读、写和执行权限,赋予组读和执行权限,赋予其他用户读权限,可以这样做:

用户类型

八进制数值计算方式

所有者

rwx=4+2+1=7

r-x=4+0+1=5

其他用户

r--=4+0+0=4

权限与数值对应表:

八进制数值

权限

对应符号

7

读 + 写 + 执行

rwx

6

读 + 写

rw-

5

读 + 执行

r-x

4

r--

3(不常用)

写 + 执行

-wx

2(不常用)

-w-

1

执行

--x

0

不具有任何权限

---

使用 4 位八进制数字

4 位八进制数字中,左侧的第 1 位八进制数字用来设置 setuid、setgid 和 sticky 位标志,数值的含义如下:

八进制数值

所表示的意义

4

设置 setuid

2

设置 setgid

1

设置 sticky

0

不做修改设置

后面的 3 位数字的含义与使用 3 位八进制数字时的含义相同。

如果第一个数字为 0,则可以省略,并且模式可以用3位数字表示,如:数字模式0755与755相同。

chmod 命令使用示例

chmod 的所有命令都可以使用 sudo 命令执行。

chmod 命令的符号模式使用示例

1、使组(组内用户)对文件 file1.txt 具有写权限:

chmod g+w file1.txt

2、使所有用户对文件 file1.txt 具有读权限:

chmod a+r file1.txt

3、取消组(组内用户)对文件 file1.txt 的读权限:

chmod g-w file1.txt

4、取消组(组内用户)对文件 file1.txt 的读权限,使其他用户对文件具有读权限:

chmod g-w, o+r file1.txt

chmod 命令的八进制模式使用示例

八进制模式必须使用一个完整的八进制模式字符串,由 3 位或 4 位八进制数组成。

使用八进制模式会同时修改三类用户的访问权限。

1、使文件所有者和组(组内用户)对文件 file1.txt 具有读写权限:

chmod 660 file1.txt

2、使文件所有者对文件 file1.txt 具有读权限,组和其他用户具有读权限:

chmod 644 file1.txt

3、取消组(组内用户)对文件 file1.txt 的读写权限:

chmod 600 file1.txt

4、使所有用户对文件 file1.txt 的读、写、执行权限:

chmod 777 file1.txt

chmod 命令选项解释

如下给出了 Linux chmod 命令中所有选项的解释说明:

选项

解释说明

-c, --changes

类似 -v, --verbose 参数, 但只在发生变化时才会输出信息

-f, --silent, --quiet

隐藏大多数错误信息

-v, --verbose

对于处理的每个文件,都输出处理的详细信息

--no-preserve-root

(默认设置)不对 '/' 特殊处理

--preserve-root

不允许递归修改根目录 '/' 下所有文件组

--reference=参考文件

使用参考文件的模式作为模式值

-R, --recursive

递归的修改目录下所有文件的组

--help

显示帮助信息后退出

--version

显示版本信息后退出

结语

在本教程中我们介绍了如何使用 chmod ( change mode ) 用于修改文件或目录的读、写、执行访问控制权限,chmod 命令可以修改三类读、写、执行访问控制权限,具体为:文件所有者的读、写、执行访问控制权限,组的读、写、执行访问控制权限,其他用户的读、写、执行访问控制权限。chmod 命令一次可以修改一个文件,多个文件或者是目录的访问控制权限。

该 chmod 命令可以在 Linux 系统中使用,也可以在 FreeBSD 系统中使用。

相关推荐

365足球平台入口 驴打滚变硬怎么办?5种加热妙招恢复软糯口感

驴打滚变硬怎么办?5种加热妙招恢复软糯口感

📅 07-09 👁️ 298
bat365在哪进 如何收割“世界杯”流量?这些内容一定要看

如何收割“世界杯”流量?这些内容一定要看

📅 07-06 👁️ 4270
约彩365软件官方下载 如何删除 Youtube 视频的分步指南

如何删除 Youtube 视频的分步指南

📅 07-02 👁️ 1845