Linux修改文件和目录的默认权限——umask

文章讲述了Linux中新建文件和目录的默认权限,以及umask如何影响这些权限。作者通过实例解释了umask的工作原理,指出计算实际权限时不能直接相减,而是需转换为字母形式。
摘要由CSDN通过智能技术生成

当新建一个文件或者目录时,默认权限是什么?如何查看文件的默认权限?

我们用touch和mkdir分别创建文件与目录,再用ls -l来查看文件与目录的权限。

[root@localhost~]# touch A B

[root@localhost~]# mkdir C D

[root@localhost~]# ls -l A B C D

-rw-rw-r--.  1 root root  8512 5月   7 09:16 A

-rw-rw-r--.  1 root root     91 4月  16 2019 B

drwxrwxr-x. 2 root root  1835  4月  19 2019 C

drwxrwxr-x.  2 root root  4096 12月  4 14:15 D

提问: 所以文件的默认权限是664?目录的默认权限是775?

文件的默认权限是666,目录的默认权限是777。

为什么会变成文件的默认664和775?

是因为设置了umask

[root@localhost~]# umask

0002

umask表示要从默认权限里移除哪些权限,002表示要从文件所有者、文件属组和其他人的权限中分别移除“0”,“0”,“2”对应的部分。

思考:假设umask 的值是 245(即 -w- r-- r-x ) 那么文件的实际权限是多少? 目录的实际权限又是多少?能不能用默认权限666和777直接减去245 ?

先说结果——不行!!!!

首先,根据umask命令修改默认权限 的语法格式  umask  <权限数字>,我们修改默认权限为245

[root@Server tmp]# umask  245        // 设置umask的值

[root@Server tmp]# umask     // 查看umask的值,结果是245

0245

[root@Server tmp]# mkdir  dir2     // 新建一个目录dir2

[root@Server tmp]# touch  file2     // 新建一个文件file2

[root@Server tmp]# ls  -l  dir2  file2    

dr-x-wx-w-.   2    root    root      6   1月 20 21:11     dir2     // 用数字表示即532

-r---w--w-.     1   root     root  0    1月 20 21:11     file2    // 用数字表示即422

结论: 在计算文件和目录的实际权限时,不能直接用默认权限和umask对应位置的数字直接相减,而应该将其转为字母的形式再相减。 直接用数字相减对目录适用,但对文件不适用!

素材来源:《Linux系统管理及应用项目式教程(RHEL 7.4CentOS 7.4)(微课版)》

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值