跳到主要内容

Linux umask 命令教程

umask(用户文件创建模式)是 Linux 和 Unix 系统中的一个重要命令,用于设置新创建文件和目录的默认权限掩码(mask)。通过使用 umask,可以控制文件和目录的默认权限,确保系统的安全性和灵活性。

基础概念

文件和目录的权限

在 Linux 系统中,文件和目录的权限分为三类:

  • 用户(User): 文件的拥有者。
  • 组(Group): 文件所属的用户组。
  • 其他人(Others): 系统中的其他用户。

每一类权限可以分为以下三种:

  • 读(Read,r: 读取文件内容或列出目录内容。
  • 写(Write,w: 修改文件内容或在目录中创建/删除文件。
  • 执行(Execute,x: 执行文件或进入目录。

权限通过三位八进制表示:

  • 文件的默认权限是 666(读和写权限)。
  • 目录的默认权限是 777(读、写和执行权限)。

umask 掩码

umask 是一种权限掩码,用于从默认权限中减去指定的权限。其值也用八进制表示,每一位表示用户、组和其他人的权限减法。

例如:

  • umask 022 表示减去写权限,导致文件的默认权限变为 644,目录的默认权限变为 755

查看当前 umask 值

运行以下命令查看当前的 umask 值:

umask

输出通常为四位或三位数字,例如 0022022。前导零通常可以忽略。

设置 umask 值

可以通过以下方式临时设置 umask 值:

umask 027

这会将 umask 值设置为 027,从而:

  • 新文件的默认权限为 640
  • 新目录的默认权限为 750

注意: 这种设置仅对当前会话有效。

永久设置 umask 值

要永久设置 umask 值,可以将其添加到配置文件中,例如:

  1. 编辑用户的 shell 配置文件(如 ~/.bashrc~/.zshrc)。
  2. 添加以下内容:
    umask 027
  3. 保存文件并运行以下命令使更改生效:
    source ~/.bashrc

对于系统范围的设置,可以编辑 /etc/profile/etc/bash.bashrc

示例

示例 1: 设置更严格的权限

umask 077
  • 新文件权限:600(只有用户可读写)。
  • 新目录权限:700(只有用户可读写执行)。

示例 2: 保留组的写权限

umask 002
  • 新文件权限:664
  • 新目录权限:775

注意事项

  1. umask 值并不会改变现有文件或目录的权限,只会影响新创建的文件和目录。
  2. 某些应用程序可能会覆盖 umask 的设置,因此需要检查具体应用的配置。

总结

通过 umask 命令,可以灵活地管理新创建文件和目录的默认权限,从而提高系统的安全性。理解并正确设置 umask 是每个系统管理员和高级用户的重要技能。