Linux常用命令学习笔记:umask

1. 命令概述

  • 命令名称umask (英文全拼:user file-creation mode mask)
  • 核心功能:设置创建文件或目录时的默认权限掩码
  • 主要用途:控制新创建文件和目录的默认权限

2. 权限掩码原理

  • 权限掩码:一个八进制数,用于屏蔽不需要的权限位
  • 默认权限:文件 666(rw-rw-rw-),目录 777(rwxrwxrwx)
  • 实际权限 = 默认权限 – 权限掩码

3. 语法格式

# 查看当前 umask
umask

# 设置 umask
umask 权限掩码

# 以符号方式显示
umask -S

4. 常用实例详解

(1) 查看当前 umask

# 查看当前 umask(数字形式)
umask
# 输出:0022

# 查看当前 umask(符号形式)
umask -S
# 输出:u=rwx,g=rx,o=rx

(2) 设置 umask

# 设置 umask 为 022
umask 022

# 设置 umask 为 002
umask 002

# 设置 umask 为 077
umask 077

(3) 权限计算示例

# umask 022 时:
文件权限:666 - 022 = 644(rw-r--r--)
目录权限:777 - 022 = 755(rwxr-xr-x)

# umask 002 时:
文件权限:666 - 002 = 664(rw-rw-r--)
目录权限:777 - 002 = 775(rwxrwxr-x)

# umask 077 时:
文件权限:666 - 077 = 600(rw-------)
目录权限:777 - 077 = 700(rwx------)

5. 实际应用场景

场景一:安全权限设置

# 设置严格权限,只允许用户自己访问
umask 077

# 创建文件和目录测试
touch secure_file.txt
mkdir secure_dir
ls -l
# 输出:-rw------- secure_file.txt,drwx------ secure_dir

场景二:团队协作权限

# 设置组可读写权限
umask 002

# 创建文件和目录测试
touch team_file.txt
mkdir team_dir
ls -l
# 输出:-rw-rw-r-- team_file.txt,drwxrwxr-x team_dir

场景三:公共访问权限

# 设置所有用户可读权限
umask 022

# 创建文件和目录测试
touch public_file.txt
mkdir public_dir
ls -l
# 输出:-rw-r--r-- public_file.txt,drwxr-xr-x public_dir

场景四:临时权限设置

# 临时设置 umask 执行特定任务
old_umask=$(umask)
umask 000
touch temp_file.txt
mkdir temp_dir
umask $old_umask

6. 永久设置方法

(1) 用户级别设置

# 编辑用户配置文件
vim ~/.bashrc

# 添加 umask 设置
umask 022

# 使配置生效
source ~/.bashrc

(2) 系统级别设置

# 编辑系统配置文件
sudo vim /etc/profile

# 添加 umask 设置
umask 022

# 使配置生效
source /etc/profile

(3) 特定用户组设置

# 编辑用户组配置文件
sudo vim /etc/bash.bashrc

# 添加 umask 设置
umask 002

7. 注意事项

  1. 权限计算:umask 是”屏蔽”的权限,不是”设置”的权限
  2. 文件权限:文件默认没有执行权限(666),目录默认有执行权限(777)
  3. 执行权限:umask 不会自动添加执行权限,即使掩码对应位为 0
  4. 符号形式umask -S 显示的是实际权限,不是掩码值
  5. 临时生效:直接设置的 umask 只在当前会话有效,退出后恢复默认

8. 常见问题解决

(1) 权限计算错误

# 查看当前 umask
umask
# 输出:0022

# 创建文件测试权限
touch test.txt
ls -l test.txt
# 输出:-rw-r--r-- 644

# 计算:666 - 022 = 644 ✓

(2) 目录权限异常

# 创建目录
mkdir test_dir
ls -ld test_dir
# 输出:drwxr-xr-x 755

# 计算:777 - 022 = 755 ✓

(3) 权限不生效

# 检查当前 umask
umask

# 检查配置文件是否生效
grep umask ~/.bashrc
grep umask /etc/profile

# 重新加载配置文件
source ~/.bashrc
source /etc/profile

(4) 符号形式理解

# 查看符号形式
umask -S
# 输出:u=rwx,g=rx,o=rx

# 对应数字:755(rwxr-xr-x)
# 对应 umask:777 - 755 = 022

核心要点总结

  • umask 作用:控制新创建文件和目录的默认权限
  • 权限计算:实际权限 = 默认权限(文件666/目录777) – umask
  • 常用值:022(安全)、002(团队协作)、077(严格)
  • 查看方式umask(数字)、umask -S(符号)
  • 设置方式:临时设置(当前会话)、永久设置(配置文件)
  • 实际应用:安全权限控制、团队协作权限、公共访问权限
  • 注意事项:umask 是屏蔽权限,文件默认无执行权限

umask 命令是 Linux 权限管理的基础工具,合理设置可以确保文件安全性和访问控制。


作 者:南烛
链 接:https://www.itnotes.top/archives/299
来 源:IT笔记
文章版权归作者所有,转载请注明出处!


上一篇
下一篇