Linux 命令 - umask: 显示或设置文件模式掩码值

时间:2022-08-29 18:09:27

umask 命令控制着创建文件时指定给文件的默认权限。它使用八进制表示法从文件模式属性中删除一个位掩码。

参见下面的例子:

[huey@huey-K42JE cmdline]$ rm -f foo.txt
[huey@huey-K42JE cmdline]$ umask [huey@huey-K42JE cmdline]$ touch foo.txt
[huey@huey-K42JE cmdline]$ ls -l foo.txt
-rw-rw-r-- 1 ucm ucm 0 Oct 3 17:32 foo.txt

首先,删除 foo.txt 文件存在的所有副本,以保证一切都是重新开始。下一步,允许不带任何参数的 umask 命令,查看当前掩码值,得到的值是 0002(0022 是另一个常用的默认值),它是掩码的八进制表示形式。接着创建文件 foo.txt 的一个新实例,查看该文件的权限。

可以发现,文件所有者和组都获得了读写权限,而其他所有用户则只读权限。其他所有用户没有写权限的原因在于掩码值。重复执行该实例,不过这次是自己设置掩码值。

[huey@huey-K42JE cmdline]$ rm -f foo.txt
[huey@huey-K42JE cmdline]$ umask 0000
[huey@huey-K42JE cmdline]$ touch foo.txt
[huey@huey-K42JE cmdline]$ ls -l foo.txt
-rw-rw-rw- 1 ucm ucm 0 Oct 3 17:38 foo.txt

在设置掩码为 0000(实际上是关闭该功能)时,可以看到其他所有用户也拥有写权限了。为了理解它是如何实现的,再来看看八进制数。如果把改掩码展开成二进制形式,然后再与属性进行对比,那么就能明白是怎么回事了。

 原始文件模式   ---    rw-    rw-    rw-  
 掩码 000    000     000     010
 结果  ---    rw-    rw-    r--

在设置掩码为 0000(实际上是关闭该功能)时,可以看到其他所有用户也拥有写权限了。为了理解它是如何实现的,再来看看八进制数。如果把改掩码展开成二进制形式,然后再与属性进行对比,那么就能明白是怎么回事了。

先忽略掉掩码中前面的 0,观察掩码中出现 1 的地方,将会发现 1 的位置对应的属性被删除——在这个例子中对应的是其他所有用户的写权限。这就是掩码的操作方式。掩码的二进制数值中每个出现 1 的位置,其对应的属性都被取消。如果设置掩码值为 0022 那么具体操作如下。

 原始文件模式   ---    rw-    rw-    rw-  
 掩码 000    000     010     010
 结果  ---    rw-    r--    r--

同样地,二进制数值中 1 出现的位置,其对应的属性都被取消。可以再试一下其他的掩码值(尝试一些带数字 7 的),以熟悉掩码的操作方式。记得每次操作完之后清理文件,并把掩码值还原成默认值。

[huey@huey-K42JE cmdline]$ rm -f foo.txt; umask 0002

大多数情况下,并不需要修改掩码值,系统提供的默认掩码值就很好了。然而,在一些高安全级别的环境下,则需要控制掩码值。

命令格式

umask [-p] [-S] [mode]

命令参数

-p
  如果 mode 省略了,则以可复用的形式输出当前的掩码值。
-S
  以字符的形式显示当前的掩码值。

实例

a) 以字符的形式显示当前的掩码值。

[huey@huey-K42JE cmdline]$ umask -S
u=rwx,g=rwx,o=rx

Linux 命令 - umask: 显示或设置文件模式掩码值的更多相关文章

  1. Linux显示检查设置文件中的语法是否正确

    Linux显示检查设置文件中的语法是否正确 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ apachectl [conflgtest] 程序"apa ...

  2. SSH Secure Shell Client连接Linux 命令行显示中文乱码问题 和oracle 查询数据中文乱码问题

    一.SSH Secure Shell Client连接Linux 命令行显示中文乱码问题 linux 设置系统语言 修改 /etc/sysconfig/i18n 文件,如 LANG="en_ ...

  3. linux命令之信息显示与搜索文件命令

    1.uname:显示系统信息 该命令用于显示系统相关的信息,比如内核版本号,硬件架构等. 参数 说明 -n(常用) 显示主机名称 -r(常用) 显示内核发行版本号 示例: 1)显示主机名 [root@ ...

  4. Linux命令行批量替换多文件中的字符串【转】

    Linux命令行批量替换多文件中的字符串[转自百度文库] 一种是Mahuinan法,一种是Sumly法,一种是30T法分别如下: 一.Mahuinan法: 用sed命令可以批量替换多个文件中的字符串. ...

  5. linux下对普通用户设置文件访问控命令之setfacl

    命令名 setfacl  -设置文件访问控制列表 常用用法:setfacl [-bkRd] [{-m|-x} acl参数] 目标文件名 命令的常用参数 -m 设置后续的acl参数给文件使用(常用). ...

  6. 批量执行(Linux命令,上传/下载文件)

    前言: 每个公司的网络环境大都划分 办公网络.线上网络,之所以划分的主要原因是为了保证线上操作安全: 对于外部用户而言也只能访问线上网络的特定开放端口,那么是什么控制了用户访问线上网络的呢? 防火墙过 ...

  7. Linux命令(五)创建文件或修改文件时间 touch

    Linux中 touch 命令可以改变文档或目录时间, 包括存取时间或更改时间, 也可以用于创建新文件. 命令格式: touch [选项] [参数] 选项: -a   只更改文件的读取时间. -m   ...

  8. linux 命令:chmod权限设置命令

    Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁 ...

  9. 【Linux命令】--(1)文件文件夹操作命令15条

    文件文件夹操作命令++++++++++++++++++++++++++++++++++++++++ 列出进入显示文件夹     ls cd pwd  创建移动删除文件     mkdir rm rmd ...

随机推荐

  1. 重复安装相同包名APK出现的问题。

    一. INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES 这样的问题主要是签名冲突造成的,比如你使用了ADB的debug权限签名,但后来使用标准sign签名后 ...

  2. android break 与 return 的区别

    break 的含义是中断,return 的含义是结束整个方法的执行. 区别. public static void main(String agrs[]){ int i; for(i=0;i<1 ...

  3. Go

    一.简介 https://zh.wikipedia.org/wiki/Go 二.安装 1)低版本 http://blog.sina.com.cn/s/blog_59cc90640102xm8r.htm ...

  4. git服务器搭建-new

    http://blog.chinaunix.net/uid-26729093-id-4652536.html 基本命令使用:http://www.cnblogs.com/xdao/p/linux_gi ...

  5. Samba 安全漏洞

    漏洞名称: Samba 安全漏洞 CNNVD编号: CNNVD-201403-239 发布时间: 2014-03-17 更新时间: 2014-03-17 危害等级: 中危   漏洞类型: 信任管理 威 ...

  6. 【转】Cocoa中的位与位运算

    转自:http://www.tuicool.com/articles/niEVjy 介绍 位操作是程序设计中对位模式或二进制数的一元和二元操作. 在许多古老的微处理器上, 位运算比加减运算略快, 通常 ...

  7. 本地Git与Github建立关联

    准备 本地与Github建立连接,需要用到SSH公钥.一般安装完Git,会在用户目录中生成一个 .ssh的文件夹 如果没有此文件夹,可以通过命令创建 $ ssh-keygen -t rsa -C &q ...

  8. C&plus;&plus; 经典知识点面试题

    1.指针的优点和缺点 优点:灵活高效 (1)提高程序的编译效率和执行速度(数组下标往下移时,需要使用乘法和加法,而指针直接使用++即可) (2)通过指针可使用主调函数和被调函数之间共享变量或数据结构, ...

  9. Shiro学习笔记&lpar;二&rpar;

    首先还是先搭建工程运行环境  依旧搭建的是Maven工程,如果不是Maven 也可以去网上找jar包然后导入 (我使用Maven主要是找依赖配置文件就行,我自己导jar包的时候就是很容易报错) 还是先 ...

  10. &lbrack;转&rsqb;HTML DIV&plus;CSS 命名规范大全

    原文链接 常用DIV+CSS命名大全集合,即CSS命名规则 我们开发CSS+DIV网页(Xhtml)时候,比较困惑和纠结的事就是CSS命名,特别是新手不知道什么地方该如何命名,怎样命名才是好的方法. ...