< 2025年6月 >
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 1 2 3 4 5
6 7 8 9 10 11 12

文编|JavaBuild

大家好呀,我是JavaBuild,以后可以喊我鸟哥,嘿嘿!俺滴座右铭是不在沉默中爆发,就在沉默中灭亡,一起加油学习,厚积薄发!

场景介绍:

面试官:运维人员想通过monitor用户去监控我们部署在Linux服务器上的服务所生成的运行日志文件,以此来监控不同日志级别下的问题,做到问题及时监控,迅速停止,立刻解决的目的,但由于部分服务器上生成的日志文件默认权限过高,导致monitor用户无权查看,需要手工调整一下linux机器生成文件的默认权限。这时候你会怎么办?

我:啊,这。。。

面试管:知道linux下的umask命令吗?

我:啊,我。。。

当被问到这个命令的时候,我想很多面试者都是懵逼的,毕竟如此冷门的指令,平时学到了也不太会去留意,下面鸟哥就来整理一下这个命令!

Linux环境下文件权限介绍:

文件的类型:

  • d:代表目录

  • -:代表文件

  • l:代表软链接(可以认为是 window 中的快捷方式)

Linux 中权限分为以下几种:

  • r:代表权限是可读,r 也可以用数字 4 表示

  • w:代表权限是可写,w 也可以用数字 2 表示

  • x:代表权限是可执行,x 也可以用数字 1 表示

文件和目录权限的区别:

对文件和目录而言,读写执行表示不同的意义。

对于文件:

权限名称

可执行操作

r

可以使用 cat 查看文件的内容

w

可以修改文件的内容

x

可以将其运行为二进制文件

对于目录:

权限名称

可执行操作

r

可以查看目录下列表

w

可以创建和删除目录下文件

x

可以使用 cd 进入目录

需要注意的是:超级用户可以无视普通用户的权限,即使文件目录权限是 000,依旧可以访问。

在 linux 中的每个用户必须属于一个组,不能独立于组外。在 linux 中每个文件有所有者、所在组、其它组的概念。

  • 所有者(u):一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者,用 ls ‐ahl 命令可以看到文件的所有者 也可以使用 chown 用户名 文件名来修改文件的所有者 。

  • 文件所在组(g):当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组用 ls ‐ahl命令可以看到文件的所有组也可以使用 chgrp 组名 文件名来修改文件所在的组。

  • 其它组(o):除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组。

Linux下的umask

umask其实是一组反码,用以确定文件或目录被创建时所拥有的初始权限,在没有做任何配置的情况下,umask的初始值为022,通过最大权限777与这个数字相减,就可以计算出初始目录和文件的权限。

目录权限:777 - 022 =755
文件权限:因为X(执行)权限是目录必须有的,否则无法进入,而文件则可以忽略X权限, 因此linux下在创建文件时默认remove x authority,故777 - 022 - 111=644

如需永久(临时修改的化,只需要执行umask XXX就行,不过重启后会失效)修改目录和文件被创建时的默认权限,可通过如下步骤:

1,服务部署的用户登录linux服务器,ll -a命令查询隐藏的.bashrc文件(修改/etc/profile亦可)

2,修改.bashrc文件,将umask 对应的值由022 改为027(无umask则新增)

--修改文件 
vim .bashrc 
-- 设置想要权限
umask 027 
-- 文件生效
source .bashrc
再次新增目录和文件就会发现,默认的权限为750和640啦。

常用的一些配置

umask值 目录 文件

022 755 644

027 750 640

002 775 664

006 771 660

007 770 660

当你把以上这一套摆在面试官时,我相信他会无法可说,哈哈哈!

posted on 2023-11-27 15:16  JavaBuild  阅读(20)  评论(0)    收藏  举报
点击右上角即可分享
微信分享提示