umask的含义及设置

转自:https://www.cnblogs.com/ttop/p/4085414.html

1.umask掩码

umask是chmod配套的,总共为4位(gid/uid, 属主组权其它用户的权限),不过通常用到的是后3个,例如你用chmod 755 file(此时这文件的权限是属主读(4)+写(2)+执行(1),同组的和其它用户有读写权限)

默认情况下的umask值是022(可以用umask命令查看),

  • 此时你建立的文件默认权限是644(6-0,6-2,6-2),
  • 建立的目录的默认权限是755(7-0,7-2,7-2)

1.1 规则:

  1. 若使用者建立为『文件』则预设『没有可执行 ( x ) 项目』,亦即只有 rw 这两个项目,也就是最大为 666 分。即 –rw-rw-rw-
  2. 若使用者建立为『目录』,则由于 x 与是否可以进入此目录有关,因此预设为所有权限均开放,亦即为 777 分。 即drwxrwxrwx

2.修改默认umask

在/etc/profile或者~/.profile或~/.bash_profile添加一行命令:

umask ???

也可以在.bashrc中添加,.profile中登录时自动执行.bashrc文件。

3.创建文件默认可执行?

例子:

[root@vbird test]# umask 003
[root@vbird test]# touch test3
[root@vbird test]# mkdir test4
[root@vbird test]# ll
-rw-rw-r– 1 root root 0 Oct 22 00:03 test3
drwxrwxr– 2 root root 4096 Oct 22 00:03 test4/

针对文件test3,如果使用十进制来算666-003=663,那么针对其他用户是3,即-wx?但实际上并不是这样,而是-r-,所以此时不能通过十进制的方法来算。

正确算法:

(-rw-rw-rw-) – (——–wx)=-rw-rw-r–

使用rwx来计算。

那么设置新创建的文件为可执行,只能通过chmod命令了,默认情况下是不可以的。

chmod +x file.sh
原文地址:https://www.cnblogs.com/BlueBlueSea/p/15579929.html