umask介绍及设置


Q:什么是umask?
A:umask一般是当创建一个文件或目录的时候,赋予文件或目录的权限,系统默认赋予的权限为0022。


这里需要说明两点:
1、针对目录来说x权限(执行权限)代表可以进入该目录,所以说对于这个权限初始赋值时没什么问题的。
2、针对文件的x权限(执行权限)来说,赋予了x权限,即可以执行该文件,风险太高,所以一般权限初始值必须去掉执行权限的。

[root@www ~]# umask
0022

这四个字母代表什么?

首先说明一点,上面四个数字代表是赋值初始化准备丢弃的权限。(相对应文件来说,x权限就算没说明出来丢弃,一样必须默认丢弃)
第一个0代表suid 丢弃的权限;
第二个0代表本文件/目录拥有者什么权限都没丢弃(如果是文件,x权限除外,为什么看看上面解释);
第三个2代表本文件/目录的用户组丢弃了w权限(如果是文件那么它的x权限也丢弃);
第三个2代表本文件/目录的其他用户能使用的权限只有有r和x(如果是文件,那么它的x权限也被丢弃)。
综合上面所说如果你新创建一个文件那么它的权限是:-wr-w--w-- 即是:644
如果你新创建一个目录的话那么它的权限是:dwrxw-xw-x 即是:755

--------------------------------------------------------------------------------------------------------

umask权限设置:


方法一(临时生效): # umask 022 (直接执行命令修改权限,只能临时生效,重启系统还原)
查看umask 命令为: #umask

方法二(永久生效):
对新建用户生效:vi /etc/profile 最后添加 umask 022 (umask 是小写)
对所有用户生效:vi /etc/bashrc 最后添加 umask 022 (umask 是小写)

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

【umask命令只能临时修改umask值,系统重启之后umask将还原成默认值。如果要永久修改umask值,需要修改/etc/profile文件或是修改/etc/bashrc文件,例如要将默认umask值设置为027,那么可以在文件中增加一行“umask 027”。
/etc/profile和/etc/bashrc都可以用于设置用户登录系统时自动执行某些操作,他们的区别是/etc/profile只在用户第一次登录时被执行,而/etc/bashrc则在用户每次登录加载Bash Shell时都会被执行。

风险:会修改新建文件的默认权限,如果该服务器是WEB应用,则此项谨慎修改。

原文地址:https://www.cnblogs.com/relax1949/p/8783305.html