关于umask(权限掩码)的一些知识

关于umask(权限掩码)的一些知识

前言:首先,我们先介绍一下关于umask的一些基础知识,以方便更深入的了解umask
定义: umask(user-file-creation mode mask)用户文件创建权限掩码,是linux系统或类linux系统的一个命令,是有3个八进制位数组成,取值范围是0000-0777,或者可简写为000-077,第一个0是用来标识这是一个 八进制数它决定了进程创建文件或目录时的默认权限,您可以在 shell 中直接运行 umask 命令来查看当前 shell 的 umask 值,如
iguagua

umask与文件或目录的权限不同,需要经过换算才能得到文件或目录默认的预设值,umask 值是用于禁用文件或目录的默认权限, 当您创建新文件或目录时,系统会根据文件类型(文件或目录)和 umask 值来确定其默认权限。

对于文件,系统会使用 666(即 -rw-rw-rw-)作为基础权限,然后根据 umask 值禁用相应的权限。例如,如果 umask 值为 0022,则新建文件的默认权限为 666-022 =644(即 -rw-r–r–)。

对于目录,系统会使用 777(即-rwxrwxrwx )作为基础权限,然后根据 umask 值禁用相应的权限。例如,如果 umask 值为 0022,则新建目录的默认权限为777-022 =755(即 -rwxr-xr-x)。
因此,当您使用相同的 umask 值创建文件和目录时,它们的默认权限可能会不同
为什么文件和目录的系统基础权限不一样:因为目录必须有x权限,才可以进入到该目录下,而文件一般具有读写权限即可,如下图:
iguaiguai

注意:
umask 值只能用于禁用权限,而不能用于启用特殊权限(例如 setuid、setgid 和 sticky bit)。如果您希望为新建文件或目录启用特殊权限,可以在创建文件或目录后使用 chmod 命令来修改它们的权限

修改umask的方法

1.临时修改,直接在命令行使用即可,这种只针对目前这个shell窗口生效,退出就失效了;
iguaiguai
2.永久修改

对新建用户生效:vi /etc/profile 最后添加 umask 022 (umask 是小写)

对所有用户生效:vi /etc/bashrc 最后添加 umask 022 (umask 是小写)

【 使配置立即生效,使用 source +文件,如 source /etc/bashrc 】

3.针对某个特定用户修改,例如我要针对zhangsan这个用户修改,则切换到在 /home/zhangsan 目录下找到该用户的 shell 配置文件(例如 .bashrc 或 .bash_profile),然后在其中添加一行 umask 0022 来更改该用户的 umask 值。当该用户登录并启动新的 shell 时,系统会自动执行配置文件中的命令,从而应用新的 umask 值。
如下图:
iguagua

需要注意的是,不同的 shell 可能使用不同的配置文件。可以查阅相关文档来确定应该在哪个文件中设置 umask 命令,例如,对于使用 bash 的用户,您可以在其主目录下的 .bashrc 或 .bash_profile 文件中添加一行 umask 0022 来永久更改该用户的 umask 值。,对于使用 zsh 的用户,您可以在其主目录下的 .zshrc 文件中设置 umask 命令

参考文章知乎-linux系统-umask详解

  • 4
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值