众所周知,文件/文件夹有访问权限之说:所有者权限(User),所有组权限(Group),其他人权限(Other)。那么当我们创建一个文件(cd . > test.txt)或者文件夹(mkdir test)时,他们会有怎样的权限呢?


事实上,新建文件夹或文件的权限是由所谓基本码减去称之为umask的屏蔽位得到的。

按照规定:文件夹的基本码是rwxrwxrwx(777),文件的基本码是rw-rw-rw-(666)

而屏蔽位则是在/etc/profile(所有人)或者~/.profile中设定的。如果上述文件中皆无设定则默认就是022


我们可以在shell下面输入umask命令查看/修改当前的系统屏蔽位。

$ umask 033

$ umask

$ 033

$ umask 022


因此新建文件夹是777-022=755(rwxr-xr-x),新建文件是666-022=644(rw-r--r--)。

$ mkdir test

$ touch test.txt

$ ll

$ drwxr-xr-x ... test/

$ -rw-r--r-- ... test.txt


所以我们可以通过修改umask来改变新建文件文、件夹的权限.