掌握CentOS umask命令(Linux系统中设置默认文件与目录权限的完整教程)

来源:这里教程网 时间:2026-03-01 12:48:20 作者:

在使用 CentOS 或其他 Linux 系统时,你是否曾好奇:为什么新建的文件默认不能执行?为什么新创建的目录权限总是 755?这一切都和一个叫

umask
的命令有关。本文将带你从零开始,彻底搞懂 CentOS umask命令,学会如何自定义新文件和目录的默认权限。

什么是 umask?

umask
(User File Creation Mask,用户文件创建掩码)是 Linux 系统中用于控制新创建文件和目录默认权限的一个机制。它通过“屏蔽”某些权限位,来决定最终文件或目录的权限。

简单来说:
- 普通文件的“最大”权限是

666
(即 rw-rw-rw-)
- 目录的“最大”权限是
777
(即 rwxrwxrwx)
然后系统会用这个最大权限减去
umask
值,得到实际的默认权限。

umask 的工作原理

假设当前

umask
值为
0022

新建文件权限 = 666 - 022 = 644 →
rw-r--r--
新建目录权限 = 777 - 022 = 755 →
rwxr-xr-x

注意:这里不是简单的十进制减法,而是按八进制位进行“屏蔽”操作。更准确的理解方式是:umask 中为 1 的位,表示该权限被“关闭”。

查看当前 umask 值

在终端中直接输入以下命令:

$ umask0022

你也可以用

-S
参数以符号形式查看:

$ umask -Su=rwx,g=rx,o=rx

临时修改 umask

你可以直接在终端中运行

umask
加上新的值,例如设置为
0002

$ umask 0002

此时再创建文件和目录:

$ touch testfile$ mkdir testdir$ ls -ld testfile testdir-rw-rw-r-- 1 user group 0 Jun 10 10:00 testfiledrwxrwxr-x 2 user group 6 Jun 10 10:00 testdir

可以看到,同组用户现在拥有写权限了!但请注意:这种修改只在当前 shell 会话中有效,关闭终端后就会失效。

永久设置 umask(系统级或用户级)

要让 umask 设置永久生效,需要修改配置文件。

1. 全局设置(对所有用户生效)

编辑

/etc/profile
/etc/bashrc
(CentOS 通常推荐后者):

# 使用 root 权限编辑sudo vi /etc/bashrc# 在文件末尾添加一行umask 002

2. 用户级设置(仅对特定用户生效)

编辑该用户的家目录下的

.bashrc
.bash_profile

vi ~/.bashrc# 添加umask 007

保存后,重新登录或运行

source ~/.bashrc
使配置生效。

常见 umask 值及其含义

umask 值 文件默认权限 目录默认权限 适用场景 0022 644 (rw-r--r--) 755 (rwxr-xr-x) 默认值,适合个人使用 0002 664 (rw-rw-r--) 775 (rwxrwxr-x) 团队协作,同组可写 0077 600 (rw-------) 700 (rwx------) 高安全要求,仅自己访问

注意事项

umask 不会影响已存在的文件权限,只对新创建的文件/目录生效。 普通文件永远不会获得执行权限(x),即使计算结果包含 x。这是出于安全考虑。 在编写脚本时,若需确保特定权限,建议显式使用
chmod
,而不是依赖 umask。

总结

通过本教程,你应该已经掌握了 CentOS umask命令 的基本原理和使用方法。无论是临时调整还是永久配置,你都可以根据实际需求(如 Linux默认权限设置、团队协作或安全加固)灵活运用 umask。

记住:文件权限管理 是 Linux 系统安全的重要一环,而 umask 正是你掌控默认权限的第一道防线。希望这篇 umask教程 能帮助你更好地管理你的 CentOS 系统!

© 2024 Linux 权限管理指南 | 适用于 CentOS 7/8/Stream

相关推荐