umask命令

umask命令

Linux和其他类Unix的操作系统上,将使用一组默认权限创建新文件,具体来说,可以通过应用称为umask的权限掩码,以特定方式限制新文件的权限,umask命令指定在建立文件时预设的权限掩码,或者展示当前的权限掩码值。

语法#

Copy
umask [-S] [mask]

参数#

  • -S: 以文字的方式来表示权限掩码。
  • mask: 果指定了有效的掩码,则将umask设置为此值,如果未指定掩码,则返回当前的umask值。

权限#

使用ll命令查看文件与文件夹相关信息,对于其权限信息:

Copy
drwxr-xr-x 12 linuxize users 4.0K Apr 8 20:51 dirname |[-][-][-] [------] [---] | | | | | | | | | | | +-----------> Group | | | | +-------------------> Owner | | | +----------------------------> Others Permissions | | +-------------------------------> Group Permissions | +----------------------------------> Owner Permissions +------------------------------------> File Type
  • 首符号为-代表该文件为普通文件,为d则代表目录。
  • 紧接着三个字符rw-代表用户u权限属性。
  • 接下来三个字符r--代表用户组g权限属性。
  • 最后三个字符r--代表其他人o权限属性。

权限可以使用字符表示,同样也可以使用八进制表示信息:

  • r: 读取属性,值为4
  • w: 写入属性,值为2
  • x: 执行属性,值为1

关于操作权限的操作符:

  • +: 为指定的用户类增加指定的文件权限。
  • -:为指定的用户类去除指定的文件权限。
  • =: 为指定的用户类设定指定的文件权限。

工作#

本质上,umask的每个数字都从操作系统的默认值中减去,以获得定义的默认值,这不是真正的减法,从技术上讲是将掩码按位取反,然后使用逻辑AND操作将此值应用于默认权限,例如umask值为0022

  • Linux系统上,默认的创建文件权限是666,默认创建文件夹的权限为777
  • 即文件默认权限666 - 022 = 644即现在创建的新文件的权限为644
  • 创建文件夹则为777 - 022 = 755即现在创建的新文件夹的权限为755

此外,第一个零是特殊的权限数字,可以忽略,就当前的目的而言,0002002相同。

示例#

查看系统当前umask值。

Copy
umask # 0022

以符号表示形式表示当前系统权限掩码。

Copy
umask -S # u=rwx,g=rx,o=rx # 实际上表达的是在所有者或者组以及其他人中的哪些权限已经被取消

将系统umask值设置为022

Copy
umask 022

每日一题#

Copy
https://github.com/WindrunnerMax/EveryDay

参考#

Copy
https://www.computerhope.com/unix/uumask.htm https://linuxize.com/post/umask-command-in-linux/ https://www.runoob.com/linux/linux-comm-umask.html
posted @   WindRunnerMax  阅读(331)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示
CONTENTS