Linux系统中的umask

umask(用户文件创建掩码)是用于控制新创建文件和目录默认权限的机制。它通过屏蔽(关闭)特定的权限位来确保文件或目录不会拥有过于开放的权限,从而提高安全性。


核心概念

  1. 权限表示
    Linux中权限分为读(r,4)、写(w,2)、执行(x,1),用三位八进制数表示(如 755)。

    • 文件默认最大权限666(即 rw-rw-rw-,无执行权限)。

    • 目录默认最大权限777(即 rwxrwxrwx,需执行权限才能进入)。

  2. umask的作用
    umask 是一个掩码值,通过按位取反后与默认权限进行逻辑与操作,得到实际权限。
    公式

    实际权限 = 默认权限 & (~umask)
    

示例解析

示例1:umask 022

  • 文件权限计算

    • 默认权限:666 → 二进制 110 110 110

    • umask值:022 → 二进制 000 010 010

    • 取反后:111 101 101(对应八进制 755

    • 实际权限:666 & 755 = 644 → rw-r--r--

  • 目录权限计算

    • 默认权限:777 → 二进制 111 111 111

    • 实际权限:777 & 755 = 755 → rwxr-xr-x

结果:新文件权限为 644,目录为 755


示例2:umask 002

  • 文件权限666 & 775 = 664 → rw-rw-r--

  • 目录权限777 & 775 = 775 → rwxrwxr-x

适用场景:适用于团队协作,允许同组用户读写文件。


示例3:umask 077

  • 文件权限666 & 700 = 600 → rw-------

  • 目录权限777 & 700 = 700 → rwx------

适用场景:严格隐私保护,仅所有者有权限。


查看与设置umask

  • 查看当前umask

    umask      # 输出数字格式(如 0022)
    umask -S   # 输出符号格式(如 u=rwx,g=rx,o=rx)
  • 临时设置umask

    umask 027  # 新会话中生效
  • 永久设置

  • 将 umask [值] 添加到 Shell 配置文件(如 ~/.bashrc 或 /etc/profile


总结

  • umask值越大,权限越严格。常用值如 022(默认)、002(宽松协作)、077(严格隐私)。

  • 文件 vs 目录:目录需要执行权限(x),因此相同 umask 下目录权限比文件多 x

  • 安全建议:避免使用过于开放的 umask(如 000),防止意外暴露敏感数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值