2.16 umask

umask命令介绍

  • umask命令,通过这个值可以确定文件和目录的默认权限是什么。
  • 默认情况下,目录的权限值为755(rwxr-xr-x),普通文件的默认权限为644(-rw-r--r--),umask默认值为0022(----w--w-)

例子对比

[root@hf-01 ~]# touch 11.txt
[root@hf-01 ~]# ls -l 11.txt
-rw-r--r--. 1 root root 0 10月 26 08:39 11.txt
[root@hf-01 ~]# mkdir 123
[root@hf-01 ~]# ls -ld 123
drwxr-xr-x. 2 root root 6 10月 26 08:39 123
[root@hf-01 ~]# umask   这是系统root用户的umask值0022,通过这个值就可以确认文件的默认权限,也可以确认目录的默认权限是什么
0022
[root@hf-01 ~]# umask 002   这里更改默认权限,写全了是0002,但一般会省去开头的0,写成002
[root@hf-01 ~]# touch 33.txt
[root@hf-01 ~]# ls -l 33.txt       这里和上面对比,会发现创建的文本权限发生了变化
-rw-rw-r--. 1 root root 0 10月 26 08:56 33.txt
[root@hf-01 ~]# mkdir 234
[root@hf-01 ~]# ls -ld 234         这里的文件夹权限也发生了变化
drwxrwxr-x. 2 root root 6 10月 26 08:57 234
  • 所以在创建目录或者文件的时候,文件或目录的权限是通过:
    • 在创建的目录或者文件的权限=默认值(文件为666 rw-rw-rw,目录为777 rwxrwxrwx)-umask的值 得来的。

规则:

  • 若用户创建普通文件。则预设没有可执行权限,只有rw两个权限,最大值为666(-rw-rw-rw)
  • 若用户建立目录,则预设开放所有权限,最大值777(rwxrwxrwx)

umask算法

当umask=003
目录的权限:777(rwxrwxrwx)-003(-------wx)=774(rwxrrxr--)
普通文件的权限:666(rw-rw-rw-)-003(-------wx)=664(rw-rw-r--)

--x减去--w依然是什么都没有

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android干货

LeanCloud云引擎相关问题

2414
来自专栏Java开发

Linux中Apache(httpd)安装、配置

1.httpd.conf是主配置文件,你可以按需更改,一般来说可能需要自定义端口,那么就vim修改httpd.conf文件的监听端口,改为你希望的

3264
来自专栏张伟博客

CentOS7使用firewalld打开关闭防火墙与端口

2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。

1012
来自专栏nummy

【译】runit 快速入门

这篇教程将通过一个简单的示例来讲解如何创建新的runit服务。如果你想了解更多信息,可以查看runit的官方文档。

1763
来自专栏JavaEdge

git rebase

但是与此同时,有些人也在"origin"分支上做了一些修改并且做了提交了. 这就意味着"origin"和"mywork"这两个分支各自"前进"了,它们之间"分叉...

953
来自专栏WebDeveloper

mac 搭建python+selenium+chromedriver环境

本人创建了一个go语言专题,但要在搜集许多go语言文章,手工操作很重复,所以就考虑到selenium工具的方便性,做一个自动化的,这样就大大提高效率

4552
来自专栏西枫里博客

win7 下创建逻辑分区

在win98下面创建主DOS分区和逻辑分区都很容易,到了XP的时候,系统会保留一个8M左右的保留空间。到了win7,干脆多了个100M的保留空间。在分区的时候,...

641
来自专栏名山丶深处

CentOS快速安装Redis

1804
来自专栏Python

CentOS7为firewalld添加开放端口及相关操作

启动一个服务:systemctl start firewalld.service 关闭一个服务:systemctlstop firewalld.service ...

3553
来自专栏云计算教程系列

如何在Ubuntu 14.04上使用PostgreSQL和Ruby on Rails应用程序

Ruby on Rails使用sqlite3作为其默认数据库,在许多情况下效果很好,但可能不适合您的应用程序。如果您的应用程序需要客户端/服务器SQL数据库(如...

1200

扫码关注云+社区

领取腾讯云代金券