当前位置 : 主页 > 操作系统 > centos >

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

来源:互联网 收集:自由互联 发布时间:2022-06-20
大家在学习Linux操作系统的时候肯定遇到过umask,大部分的书籍会对umask从原理到各种情况下的应用都讲的非常详细,洋洋洒洒一大篇,然后呢?然后你就看得云里雾里似乎明白了,可是又

大家在学习Linux操作系统的时候肯定遇到过umask,大部分的书籍会对umask从原理到各种情况下的应用都讲的非常详细,洋洋洒洒一大篇,然后呢?然后你就看得云里雾里似乎明白了,可是又不太懂这个东西干嘛搞这么复杂,再加上它不像ls命令那样经常用,三五天的时间估计就忘的一干二净了。

好了不废话了,其实我对于umask的理解也是经历过很多次这方面的坑才慢慢理解了它的作用的。简单一句话umask是配合Linux的权限管理机制,用来控制用户新建文件夹和新建文件的权限属性的,如果你在实际的工作当中遇到了相关权限问题时可以考虑从umask上进行排错。

1.查看系统的umask

命令

umask

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

umask的配置信息就在/etc/profile里

vim /etc/profile

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

:notebook: 在linux系统中用户新建文件夹的默认属性是777,新建文件的默认属性是666。(敲黑板、记结论,这个东西没有什么理解不理解的)

光这么说你可能还是不太明白,接下来就要一番操作猛如虎了。

root用户在/home目录下新建一个文件夹。

mkdir /home/test

image.png看上图,你是不是有疑问啊?老师,你刚才不是说新建文件夹的默认属性不是777吗?怎么我新建的文件夹属性是755呢?

轮到umask上场了。image.png明白没?

再来,换个用户。image.png怎么样,只要小学毕业了,上面的算术题应该会算吧?

再来,新建文件的默认属性呢?

上操作。

cd /home/test touch hello.txt ll

image.png换成普通用户再来。

cd /home/alfiy/test/ touch hello.txt ll

image.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的根目录新建一个文件夹。image.pngimage.pngimage.pngimage.png接着我想在/images文件夹下再新建一个'headers'文件夹image.pngimage.png这:question:

肯定是文件夹属性出现了问题,登录服务器看看吧。image.png再进入'images'文件夹看看。image.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登录服务器。image.pngimage.pngimage.png是不是很爽?

登录服务器看看。image.pngimage.pngimage.png是不是和想像的一样啊?

至此,你品,你细品,关于Linux umask是否弄懂了呢?

网友评论