一文让你彻底明白Linux中的umask

一万年来谁著史,三千里外欲封侯。这篇文章主要讲述一文让你彻底明白Linux中的umask相关的知识,希望能为你提供帮助。
大家在学习Linux操作系统的时候肯定遇到过umask,大部分的书籍会对umask从原理到各种情况下的应用都讲的非常详细,洋洋洒洒一大篇,然后呢?然后你就看得云里雾里似乎明白了,可是又不太懂这个东西干嘛搞这么复杂,再加上它不像ls命令那样经常用,三五天的时间估计就忘的一干二净了。
好了不废话了,其实我对于umask的理解也是经历过很多次这方面的坑才慢慢理解了它的作用的。简单一句话umask是配合Linux的权限管理机制,用来控制用户新建文件夹和新建文件的权限属性的,如果你在实际的工作当中遇到了相关权限问题时可以考虑从umask上进行排错。
1.查看系统的umask
命令

umask

一文让你彻底明白Linux中的umask

文章图片

大家使用Linux久了就会渐渐明白一个道理,像这种系统变量值这些只要是能够使用命令来配置的,一般都会有相应的配置文件。
umask的配置信息就在/etc/profile
vim /etc/profile

一文让你彻底明白Linux中的umask

文章图片

我们已经知道如果查看当前用户的umask值了,那么umask有什么用呢?我前面说了umask就是控制用户新建文件夹及新建文件的默认属性的,那么在Linux系统中用户新建文件夹及新建文件的默认属性是什么呢?
:notebook: 在linux系统中用户新建文件夹的默认属性是777,新建文件的默认属性是666。(敲黑板、记结论,这个东西没有什么理解不理解的)
光这么说你可能还是不太明白,接下来就要一番操作猛如虎了。
root用户在/home目录下新建一个文件夹。
mkdir /home/test

一文让你彻底明白Linux中的umask

文章图片

看上图,你是不是有疑问啊?老师,你刚才不是说新建文件夹的默认属性不是777吗?怎么我新建的文件夹属性是755呢?
轮到umask上场了。
一文让你彻底明白Linux中的umask

文章图片

明白没?
再来,换个用户。
一文让你彻底明白Linux中的umask

文章图片

怎么样,只要小学毕业了,上面的算术题应该会算吧?
再来,新建文件的默认属性呢?
上操作。
cd /home/test touch hello.txt ll

一文让你彻底明白Linux中的umask

文章图片

换成普通用户再来。
cd /home/alfiy/test/ touch hello.txt ll

一文让你彻底明白Linux中的umask

文章图片

好了,如果你明白了,我就不讲了,讲多了我也就不会了(哈哈):smile_cat:
如果你这大聪明看到上面的这些就大明白了,我这个老师也就应该休息了:smile:
老师决定坑你一把,记住了在学习的路上“不坑不长记性”,“一次被坑,终生难忘”,“这世界上并没有什么高手,只不过被坑的多了,便有了高手”。
空泛的讲你的记忆是不会深刻的。
这一次你们的老大给你下任务了。小X,你帮开发部在生产服务器上搭建一个FTP去。你心想,就这?前两天我老师刚教会我如何搭建FTP服务器,老师厉害了,不仅开了防火墙连" Selinux" ,都没关,不信你瞧这里centos8.5 Vsftpd 搭建FTP服务器。
按照老师的教程,你三下五除六,一番操作猛如虎的不到半个小时搞定了,正当你高兴的把FTP的址发给你老大,心中暗自得意的时候,没想到得到的是老大的一顿臭骂。“什么,我生产服务器上让你搭个FTP服务器,你竟然不使用SSL?””我开了防火墙的,SE也没关。” 你小声的诺诺道,“你建的服务器是明文传输的知道不?有多可怕明白不?” 老大几乎吼起来了,边说边打开了他的“大鲨鱼”(Wireshark),输入FTP网址、用户名、密码,一番操作后,你设置28个字符的密码赫然出现在老大的大鲨鱼中。这时的你挠着头说,“我再去把SSL功能打开吧。“
接着你又开始了疯狂面向百度编程,我说何必呢,来这里centos8 配置vsftpd的SSL/TLS功能。
好了,这次你接受了上次的教训,先默默的验证吧
一切都很正常的样子,登录时也提示了SSL信息。
进入FTP的根目录新建一个文件夹。
一文让你彻底明白Linux中的umask

文章图片

一文让你彻底明白Linux中的umask

文章图片

一文让你彻底明白Linux中的umask

文章图片

一文让你彻底明白Linux中的umask

文章图片

接着我想在/images文件夹下再新建一个headers文件夹
一文让你彻底明白Linux中的umask

文章图片

一文让你彻底明白Linux中的umask

文章图片

这:question:
肯定是文件夹属性出现了问题,登录服务器看看吧。
一文让你彻底明白Linux中的umask

文章图片

再进入images文件夹看看。
一文让你彻底明白Linux中的umask

文章图片

如果真的想不起来那就接着听老师往下讲吧。
这次我们换一个用户登录,在前面的教程里我们不是建了两个虚拟用户吗,一个ftpuser,一个ftptest,这次我给ftptest用户动一下手脚。
:notebook: 虚拟用户的配置文件在/etc/vsftpd/vusers_dir文件夹下,以用户名命名的文件。
vim /etc/vsftpd/vusers_dir/ftptest

添加anon_umask=0002
或者你直接使用我下面的命令
echo "anon_umask=0002" > > ftptest

重启vsftpd服务
systemctl restart vsftpd

使用filezilla登录服务器。
一文让你彻底明白Linux中的umask

文章图片

一文让你彻底明白Linux中的umask

文章图片

一文让你彻底明白Linux中的umask

文章图片

是不是很爽?
登录服务器看看。
一文让你彻底明白Linux中的umask

文章图片

一文让你彻底明白Linux中的umask

文章图片

一文让你彻底明白Linux中的umask

文章图片

是不是和想像的一样啊?
【一文让你彻底明白Linux中的umask】至此,你品,你细品,关于Linux umask是否弄懂了呢?

    推荐阅读