Linux umask 作用
时间: 2024-08-17 10:03:14 浏览: 57
umask(user file-creation mode mask)是Linux系统中用于设置默认文件和目录权限的命令。它决定了用户创建新文件或目录时的默认权限。umask的值实际上是一个掩码,用来从完全权限(如666对于文件,777对于目录)中减去某些位,从而得到新创建的文件或目录的权限。
在Linux系统中,文件的默认权限通常是666(rw-rw-rw-),目录的默认权限是777(rwxrwxrwx)。umask值指定的权限位会从这些默认权限中减去,从而得到实际的权限。
例如,如果umask值设置为022,那么:
- 对于文件,默认权限666减去umask的022得到644(rw-r--r--)。
- 对于目录,默认权限777减去umask的022得到755(rwxr-xr-x)。
这样,新创建的文件默认对所有者具有读写权限,对所属组和其他用户只有读权限。新创建的目录默认对所有者具有读写执行权限,对所属组和其他用户只有读执行权限。
设置umask值通常在用户的shell配置文件中进行,如`.bashrc`或`.bash_profile`,以便在用户登录时自动应用。
相关问题
Linux umask
Linux umask是一个权限掩码,用于控制在创建新文件或目录时默认的文件权限。umask的值是一个三位八进制数,它指定了文件创建时要从文件权限中剥离的权限位。在Linux中,umask的默认值通常是022,这意味着新文件的权限将为644,新目录的权限将为755。umask的值可以在登录shell脚本中设置,也可以在命令行中使用umask命令单独设置。
linux umask 0022
`umask` 在 Linux 系统中是一个用于设置默认文件权限掩码的命令。当创建新文件或目录时,系统会使用这个掩码来过滤出最终的权限设置。`umask` 的值决定了新创建的文件或目录的默认权限。
当你设置 `umask` 为 `0022` 时,你实际上是在指定权限掩码中的“禁止位”。这里的 `0022` 表示用户组和其他用户的权限将被限制。具体来说,每一位对应着文件权限中的一种类型:
- 第一个 `0` 表示用户的权限不受影响。
- 第二个 `0` 表示同组用户的权限不受影响。
- 第一个 `2` 表示其他用户不能写入(写权限用数字 `2` 表示)。
- 第二个 `2` 表示其他用户不能读取(读权限用数字 `4` 表示,但因为权限是用二进制表示,所以实际上是 `4` 和 `2` 位一起代表读权限,此处表示读权限被禁止)。
因此,当 `umask` 设为 `0022` 时,新创建的文件默认权限是:
- 用户:读、写、执行(`rwx`)
- 组:读、执行(`rx`)
- 其他用户:仅执行(`x`)
需要注意的是,这里指的是八进制表示法,每个数字代表了一组权限(读、写、执行)。最终的权限是经过 `umask` 掩码过滤后的结果。
例如,如果没有 `umask`,一个普通文件的默认权限可能是 `666`(rw-rw-rw-),而一个目录的默认权限可能是 `777`(rwxrwxrwx)。通过 `umask` 的设置,这些权限会相应减少。
阅读全文