21. 常用shell之 chmod - 更改文件权限 的用法和衍生用法
2023-12-15 08:39:05
chmod
是一个在 Unix 和类 Unix 系统(如 Linux 和 macOS)中用于更改文件或目录权限的命令。理解 chmod
的基本用法和衍生用法对于管理系统文件和保护数据安全非常重要。
基本用法
在 Unix 和类 Unix 系统中,文件和目录的访问权限被分为三类:所有者(owner)、所属组(group)和其他用户(others)。每类用户都可以被赋予以下权限:
- 读(r):允许读取文件内容或列出目录中的内容。
- 写(w):允许修改文件内容或在目录中添加/删除文件。
- 执行(x):允许执行文件或进入目录。
chmod
命令的基本语法如下:
chmod [options] mode file...
- options:可选参数,例如
-R
用于递归地更改目录及其内容的权限。 - mode:指定权限的方式,可以是数字模式或符号模式。
- file:要更改权限的文件或目录。
数字模式
数字模式使用三位数来表示权限,每一位代表一类用户的权限。
- 第一位数字代表所有者的权限。
- 第二位数字代表所属组的权限。
- 第三位数字代表其他用户的权限。
每位数字是其对应权限的总和:
- 读(r)= 4
- 写(w)= 2
- 执行(x)= 1
例如,chmod 755 file
表示:
- 所有者具有读、写和执行权限(7 = 4+2+1)。
- 所属组具有读和执行权限(5 = 4+1)。
- 其他用户具有读和执行权限(5 = 4+1)。
符号模式
符号模式更直观,使用字母和操作符来表示权限的更改。
u
、g
和o
分别代表所有者、所属组和其他用户。a
代表所有用户(所有者、所属组、其他用户)。+
、-
和=
分别用来添加、删除和设置指定的权限。
例如,chmod u+x file
表示给文件的所有者添加执行权限。
衍生用法
-
递归更改权限:使用
-R
选项可以递归地更改目录及其内部所有文件和子目录的权限。例如,chmod -R 755 directory
会将指定目录及其所有内容设置为 755 权限。 -
设置默认权限:可以使用
umask
命令来设置新创建文件和目录的默认权限。umask
的值会从完全权限(通常是 777)中减去,以得出默认权限。 -
特殊权限位:
- Set User ID (SUID):当设置在可执行文件上时,该文件将以文件所有者的权限运行。
- Set Group ID (SGID):对于目录,使得在此目录下创建的文件继承该目录的组。对于文件,当执行时,以文件所属组的权限运行。
- Sticky Bit:在目录上设置时,只允许文件所有者删除其文件。
这些特殊权限位可以通过在数字模式前添加一个数字(如 4 对于 SUID,2 对于 SGID,1 对于 Sticky Bit)来设置。
chmod
命令的使用必须谨慎,错误的权限设置可能导致安全问题或数据丢失。在实践中,应该根据需要最小化权限,特别是在多用户环境中。
文章来源:https://blog.csdn.net/WQY867047910/article/details/134991312
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!