umask 是用于控制新创建文件或目录默认权限的掩码值,它通过屏蔽部分权限来影响最终的访问控制。其作用是告诉系统在创建新文件或目录时应去除哪些权限,默认情况下文件最大权限为 666,目录为 777,系统会从最大权限中减去 umask 值以得到实际权限。例如 umask 022 时,文件权限为 644(rw-r--r--),目录权限为 755(drwxr-xr-x)。可通过在终端输入 umask 查看当前值,使用 umask -s 可查看符号表示。临时修改可在终端输入 umask 加数值,永久设置则需修改用户的 shell 配置文件如 .bashrc 或 /etc/profile。umask 使用八进制数表示,每一位分别代表屏蔽 user、group 和 others 的权限,其中 0 表示无屏蔽,1 屏蔽执行,2 屏蔽写,4 屏蔽读。常见 umask 示例包括:022(屏蔽 group 和 others 的写权限)、002(仅屏蔽 others 写权限)、077(屏蔽 group 和 others 所有权限)、007(屏蔽 others 所有权限)。

在 Linux 系统中,每个用户创建文件或目录时,默认都会有一定的权限设置。而这些默认权限是可以通过 umask 值来控制的。简单来说,umask 是用来屏蔽掉某些默认权限的掩码值,从而影响新创建文件和目录的实际权限。

umask 的作用是告诉系统,在创建新文件或目录的时候,哪些权限应该被“屏蔽”掉。它不会直接设定权限,而是通过减法操作影响最终结果。

比如:
666(rw-rw-rw-)
777(rwxrwxrwx)
当设置了 umask 值之后,系统会从最大权限中减去 umask 所代表的权限,得到用户实际拥有的默认权限。

举个例子:
如果 umask 设置为
022
-rw-r--r--
drwxr-xr-x
你可以在终端中直接输入以下命令查看当前用户的 umask 值:
umask
输出可能是类似这样的数字:
0022
0002
如果你希望看到带有符号表示的 umask(比如 u=rwx,g=rwx,o=),可以加上
-S
umask -S
你可以直接在终端中输入:
umask 027
这会将当前会话的 umask 设置为
027
注意:这种方式只对当前终端会话有效,关闭窗口后失效。
如果你希望某个用户每次登录时都使用特定的 umask 值,可以修改该用户的 shell 配置文件。常见的配置文件包括:
~/.bashrc
~/.bash_profile
/etc/profile
/etc/bash.bashrc
例如,在用户家目录下的
.bashrc
umask 027
保存后运行:
source ~/.bashrc
这样就可以立即生效,并且每次登录都会自动应用这个 umask 值。
umask 使用的是八进制数值,每一位分别对应不同用户组的权限屏蔽位:
| 八进制数 | 权限含义 |
|---|---|
| 0 | 没有屏蔽权限 |
| 1 | 屏蔽执行权限 |
| 2 | 屏蔽写权限 |
| 4 | 屏蔽读权限 |
三位 umask 数字分别代表:
举几个常见 umask 示例:
022
002
077
007
umask 的设置并不复杂,但理解它的原理能帮助你更好地控制新建文件和目录的安全性。只要根据自己的安全需求选择合适的 umask 值,并在合适的位置进行配置,就能轻松实现权限管理。
基本上就这些了。
以上就是Linux如何设置用户的默认权限 umask值设置与计算方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号