评论

收藏

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

服务系统 服务系统 发布于:2021-12-27 13:01 | 阅读数:640 | 评论:0

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

umask的配置信息就在/etc/profile里
vim /etc/profile
DSC0001.png
我们已经知道如果查看当前用户的umask值了,那么umask有什么用呢?我前面说了umask就是控制用户新建文件夹及新建文件的默认属性的,那么在Linux系统中用户新建文件夹及新建文件的默认属性是什么呢?

:notebook: 在linux系统中用户新建文件夹的默认属性是777,新建文件的默认属性是666。(敲黑板、记结论,这个东西没有什么理解不理解的)
光这么说你可能还是不太明白,接下来就要一番操作猛如虎了。
root用户在/home目录下新建一个文件夹。
mkdir /home/test
DSC0002.png
看上图,你是不是有疑问啊?老师,你刚才不是说新建文件夹的默认属性不是777吗?怎么我新建的文件夹属性是755呢?

轮到umask上场了。
DSC0003.png
明白没?
再来,换个用户。
DSC0004.png
怎么样,只要小学毕业了,上面的算术题应该会算吧?
再来,新建文件的默认属性呢?
上操作。
cd /home/test
touch hello.txt
ll
DSC0005.png
换成普通用户再来。
cd /home/alfiy/test/
touch hello.txt
ll
DSC0006.png
好了,如果你明白了,我就不讲了,讲多了我也就不会了(哈哈):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的根目录新建一个文件夹。
DSC0007.png
DSC0008.png
DSC0009.png
DSC00010.png
接着我想在/images文件夹下再新建一个'headers'文件夹
DSC00011.png
DSC00012.png
这:question:
肯定是文件夹属性出现了问题,登录服务器看看吧。
DSC00013.png
再进入'images'文件夹看看。
DSC00014.png
如果真的想不起来那就接着听老师往下讲吧。
这次我们换一个用户登录,在前面的教程里我们不是建了两个虚拟用户吗,一个'ftpuser',一个'ftptest',这次我给'ftptest'用户动一下手脚。
:notebook: 虚拟用户的配置文件在/etc/vsftpd/vusers_dir文件夹下,以用户名命名的文件。
vim /etc/vsftpd/vusers_dir/ftptest
添加anon_umask=0002
或者你直接使用我下面的命令
echo "anon_umask=0002" >> /etc/vsftpd/vusers_dir/ftptest
重启vsftpd服务
systemctl restart vsftpd
使用filezilla登录服务器。
DSC00015.png
DSC00016.png
DSC00017.png
是不是很爽?
登录服务器看看。
DSC00018.png
DSC00019.png
DSC00020.png
是不是和想像的一样啊?
至此,你品,你细品,关于Linux umask是否弄懂了呢?


关注下面的标签,发现更多相似文章
评论

使用道具 举报