umask

linux中的 umask 函数主要用于:在创建新文件或目录时 屏蔽掉新文件或目录不应有的访问允许权限。

文件的访问允许权限共有9种,分别是:rwxrwxrwx

它们分别代表:用户读 用户写 用户执行 组读 组写 组执行 其它读 其它写 其它执行

屏蔽的规则如下:

1. 不管屏蔽码是多少,

·新创建的文件默认不具有可执行允可权限。(为6)

·新创建的目录默认具有可执行允可权限。(为7)

2. 屏蔽码的格式为八进制格式,共三个八进制数。可设置如下 002 或 022 或 ......

3. 其中的每一个八进制数由三位表示,分别是 读 写 执行

4 2 1

例如 002 用二进制表示为: 0 0 0 -- 0 0 0 -- 0 1 0

4 2 1 4 2 1 4 2 1

4. 产生的文件为 umask 值求反后的允可权限,即

对于文件: ~002 = 664(新创建文件所应具有的访问权限)

对于目录: ~002 = 775(新创建目录所应具有的访

问权限)

 
### umask 文件权限设置的理解与问题解决 在 Linux 系统中,`umask` 是用于控制新创建文件和目录的默认权限的重要机制。它通过从文件或目录的默认权限中减去指定的权限位,来限制新创建文件的访问权限。这种机制确保了系统在默认情况下不会赋予用户过高的权限,从而提升安全性。 #### umask 的作用与默认值 `umask` 的作用是定义用户在创建文件或目录时的默认权限限制。默认情况下,`umask` 的值为 `022`,这意味着新创建的文件默认权限为 `644`(即 `6-0`, `6-2`, `6-2`),目录的默认权限为 `755`(即 `7-0`, `7-2`, `7-2`)[^2]。可以通过 `umask` 命令查看当前用户的 `umask` 值。 例如: ```bash umask ``` 输出可能为: ``` 0022 ``` #### umask 与文件权限的关系 在 Linux 中,`umask` 的作用是用户在创建文件时从文件的默认权限中去除掩码中的权限[^3]。具体而言: - 对于文件,默认权限为 `666`(所有用户都可读写),实际权限为 `666 & (~umask)`。 - 对于目录,默认权限为 `777`(所有用户都可读、写、执行),实际权限为 `777 & (~umask)`。 例如,当 `umask` 为 `022` 时: - 文件权限:`666 - 022 = 644`(即 `-rw-r--r--`)。 - 目录权限:`777 - 022 = 755`(即 `drwxr-xr-x`)。 可以通过以下命令临时修改 `umask` 值: ```bash umask 027 ``` 这将使新创建的文件权限变为 `640`,目录权限变为 `750`。 #### umask 与 root 用户及普通用户的区别 在大多数 Linux 发行版中,`root` 用户的默认 `umask` 值通常为 `022`,而普通用户的默认 `umask` 值可能为 `002` 或 `022`,具体取决于系统配置。不同用户的 `umask` 值可以通过 `/etc/login.defs` 和 `/etc/profile` 文件进行配置[^3]。 例如,在 `/etc/login.defs` 中可以找到如下配置: ``` UMASK 022 ``` 这表示系统默认的 `umask` 值为 `022`。 #### umask 与 chmod 的区别 `umask` 用于设置新创建文件或目录的默认权限,而 `chmod` 用于修改已有文件或目录的权限。例如,可以使用 `chmod` 为文件添加或删除特定权限: ```bash chmod u+x script.sh ``` 该命令为文件所有者添加执行权限。 也可以使用八进制数直接修改权限: ```bash chmod 755 script.sh ``` 此命令将文件权限设置为 `rwxr-xr-x`[^4]。 #### umask 的实际应用场景 - **提高安全性**:通过设置合适的 `umask` 值,可以防止新创建的文件或目录被其他用户随意访问。 - **统一权限管理**:在多用户环境中,合理配置 `umask` 可以确保用户创建的文件具有统一的权限策略。 - **系统管理**:系统管理员可以通过 `/etc/profile` 或 `/etc/login.defs` 设置全局 `umask` 值,确保所有用户的默认权限一致。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值