linux亦步亦趋(12)文件权限管理umask

umask命令:

查看默认权限的命令,比如新创建的文件和文件夹的命令。

我们先看一下我们新建的目录的权限:

[root@localhost home]# su - newuser
[newuser@localhost ~]$ ls
[newuser@localhost ~]$ pwd
/home/newuser
[newuser@localhost ~]$ mkdir bobo
[newuser@localhost ~]$ ls -l
总计 4
drwxrwxr-x 2 newuser newuser 4096 07-22 17:38 bobo
[newuser@localhost ~]$ umask -S
u=rwx,g=rwx,o=rx
[newuser@localhost ~]$ umask
0002
[newuser@localhost ~]$

可以看到我们创建的目录的权限是drwxrwxr-x 与我们umask -S 看到的结果是一样的。也就是文件夹所有者是rwx  同组是rwx  其他是rx。但是umask的直接显示我们却看不懂,

这里有必要解释一下:mask就是掩码的意思,因此他是一个掩码的显示方式,其中第一个0是特殊权限位我们先不考虑他,后面的022其实表示的是777-022的结果也就是755.与我们的实验结果一样。

我们再来看新建的文件的权限:

[newuser@localhost bobo]$ touch bobo.txt
[newuser@localhost bobo]$ ls -l
总计 0
-rw-rw-r-- 1 newuser newuser 0 07-22 17:47 bobo.txt
[newuser@localhost bobo]$

我们发现x选项都没了,除此之外都是ok的,原因是因为linux有个原则就是所有新建的文件都不能直接赋有可执行的权限,即便是umask中指定了可执行权限也无效。

更改umask的值:

不建议大家更改这个值,系统默认这个值是非常的合理的。但是我们仍然可以更改,比如我们觉着755这个值不太好我们可以改成750即其他用户没有任何权限。

实例如下:umask 027; 注意027是算出来的。不是直接的750.

[newuser@localhost bobo]$ umask 027
[newuser@localhost bobo]$ touch bobo.txt
[newuser@localhost bobo]$ ls -l
总计 0
-rw-r----- 1 newuser newuser 0 07-22 17:55 bobo.txt
[newuser@localhost bobo]$

从结果看我们成功了。

最后记得把umask的值该回去。

[newuser@localhost bobo]$ umask 022
[newuser@localhost bobo]$