Linux 中的 umask 命令:设置默认文件或目录权限

平时在 Linux 上新建文件、新建文件夹,发现它们自动就有了权限,比如文件一般是 644、目录是 755,很多人以为是系统固定死的,其实不是 —— 这一切都是由 umask 控制的。

今天就用很好理解的方式,把 umask 到底是干嘛的、怎么看、怎么改、怎么算权限,一次性讲明白,日常运维、服务器配置、写脚本都用得上。

先说最直观的:umask 是一个 “遮罩值”,作用就是减去默认权限,而不是直接设置权限。

系统有两个基准权限:

  • 新建文件:默认最大权限是 666(rw-rw-rw-)
  • 新建目录:默认最大权限是 777(rwxrwxrwx)

umask 就是从这两个值里 “扣掉” 对应的权限,最终得到你新建文件 / 目录的实际权限。


先看一下当前系统的 umask 是多少,直接输命令就行:

umask

普通用户一般输出 0002,root 用户通常是 0022

前面那个 0 是特殊权限位,日常不用管,我们只看后面三位 022 就够了。

举个最常用的例子:

umask 是 022

  • 文件最终权限:666 – 022 = 644
  • 目录最终权限:777 – 022 = 755

这就是为什么我们新建文件默认是 rw-r--r--,目录是 rwxr-xr-x

如果你是普通用户,umask 一般是 002:

  • 文件:666 – 002 = 664
  • 目录:777 – 002 = 775 同组用户就可以一起读写,适合团队共用目录。

临时修改 umask(当前终端生效)

想临时改一下,让新建文件权限更严格或更宽松,直接赋值就行:

# 更严格,同组无写权限
umask 022

# 更宽松,团队共享用
umask 002

# 非常严格,仅自己可用
umask 077

077 扣完之后:

  • 文件:600(只有自己能读写)
  • 目录:700(只有自己能进)

很适合放私密配置、密钥之类的文件。


永久修改 umask(重启 / 重登依然有效)

临时改了只对当前窗口有用,想永久生效就要改配置文件。

对当前用户生效,写入自己的环境配置:

vim ~/.bashrc
# 或者
vim ~/.profile

在最后加一行:

umask 022

让它立即生效:

source ~/.bashrc

如果想对所有用户生效,可以改系统级配置:

sudo vim /etc/profile

同样在末尾添加 umask 设置即可。


快速判断权限对不对

你不用每次都心算,可以用这个命令直接看结果:

umask -S

它会直接以 rwx 形式显示最终权限,一目了然。


简单总结一下:

umask 就是 Linux 给新建文件 / 目录的 “默认权限减法器”。

  • 想安全 → umask 022 / 077
  • 想共享 → umask 002
  • 想临时生效 → 直接执行 umask xxx
  • 想永久生效 → 写进 .bashrc 或 /etc/profile

日常用记住这几个常用值,基本就能搞定所有权限默认分配的场景,再也不会新建出权限太松或太严的文件了。

本文首发于 58Linux技术博客,专注Ubuntu桌面使用、Linux服务器运维与网站搭建实战。

发表评论

粤ICP备10052831号 | © 2026 58Linux 技术笔记. All Rights Reserved. | 联系我们 | 关于本站
本站内容开放共享,仅供学习交流 | 专注 Ubuntu & Linux 实战教程
Built with GeneratePress