返回顶部
首页 > 资讯 > 操作系统 >详解linux下umask的使用
  • 833
分享到

详解linux下umask的使用

linuxumask使用 2022-06-04 23:06:12 833人浏览 安东尼
摘要

最近开始学习linux ,看完马哥的linux课程关于umask的这个部分, 写这篇博客希望加深下我对umask的理解 和对umask不太清楚的博友一些帮助。 1 umask 是什么 当我们登录系统之后创建一个文件是会

最近开始学习linux ,看完马哥的linux课程关于umask的这个部分, 写这篇博客希望加深下我对umask的理解 和对umask不太清楚的博友一些帮助。

1 umask 是什么

当我们登录系统之后创建一个文件是会有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask用于设置用户创建文件或者目录的默认权限,umask设置的是权限的“补码”,而我们常用chmod设置的是文件权限码。一般在/etc/profile,HOME/.bashprofile或者HOME/.profile中设置umask值。

2 umask是用来做什么的

默认情况下的umask值是022(可以用umask命令查看),此时你建立的文件默认权限是644(6-0,6-2,6-2),建立的目录的默认 权限是755(7-0,7-2,7-2),可以用ls -l验证一下, 现在应该知道umask的用途了吧,它是为了控制默认权限的。


[root@boGon test]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@bogon test]# umask
0022
[root@bogon test]# touch a.txt
[root@bogon test]# ls -l
total 0
-rw-r--r--. 1 root root 0 Jul 3 00:40 a.txt
[root@bogon test]# mkdir b
[root@bogon test]# ls -l
total 0
-rw-r--r--. 1 root root 0 Jul 3 00:40 a.txt
drwxr-xr-x. 2 root root 6 Jul 3 00:41 b

从上面可以看到, root 的umask是022(第一个0 代表特殊权限位,这里先不考虑), 创建的文件默认权限是644,创建的目录是755。

3 基本权限讲解

讲解umask的使用之前, 需要先讲解下文件的基本权限

linux文件权限

  r w x
文件  可以查看文件内容  可以修改文件  可以把文件启动为一个运行的程序
目录  可以ls查看目录中的文件名  可以在目录中创建或者删除文件(只有w权限没法创建,需要x配合)  可以使用cd 进入这个目录ls-l显示目录内文件的元数据的信息

4 umask计算权限

对于文件和目录来说, 最大的权限其实都是777,但是执行权限对于文件来说,很可怕,而对目录来说执行权限是个基本权限。所以默认目录的最大权限是777,而文件的默认最大权限就是666。

对于root用户的umask=022这个来说,777权限二进制码就是(111)(111)(111),022权限二进制码为(000)(010)(010)。

  • 所有权限二进制的1:代表有这个权限
  • umask二进制1:代表要去掉这个权限,不管你原来有没有权限,你最终一定没有这个权限。
  • umask二进制的0:代表我不关心对应位的权限,你原来有权限就有权限,没有就没有, 我不影响你。

umask为002的文件默认权限计算方法

  所有者 r 所有者 w 所有者 x 所在组 r 所在组 w 所在组 x 其他 r 其他 w 其他 x 
所有权限777 1 1 1 1 1 1 1 1 1
umask掩码002 0 0 0 0 1 0 0 1 0
计算后的值 1 1 1 1 0 1 1 0 1

umask为002的目录默认权限计算方法

  所有者 r 所有者 w 所有者 x 所在组 r 所在组 w 所在组 x 其他 r 其他 w 其他 x 
所有权限666 1 1 0 1 1 0 1 1 0
umask掩码002 0 0 0 0 1 0 0 1 0
计算后的值 1 1 0 1 0 0 1 0 0

umask为023的目录默认权限计算方法

  所有者 r 所有者 w 所有者 x 所在组 r 所在组 w 所在组 x 其他 r 其他 w 其他 x 
所有权限777 1 1 1 1 1 1 1 1 1
umask掩码023 0 0 0 0 1 0 0 1 1
计算后的值 1 1 1 1 0 1 1 0 0

umask为023的文件默认权限计算方法

  所有者 r 所有者 w 所有者 x 所在组 r 所在组 w 所在组 x 其他 r 其他 w 其他 x 
所有权限666 1 1 0 1 1 0 1 1 0
umask掩码023 0 0 0 0 1 0 0 1 1
计算后的值 1 1 0 1 0 0 1 0 0

上面就是一个umask的正常计算过程,但是这样实在是太麻烦了。我们使用如下的简单的方法快速计算。

  1. 对于目录,直接使用777-umask即可,就得到了最终结果。
  2. 对于文件,先使用666-umask。
    1. 如果对应位上为偶数:最终权限就是这个偶数值。
    2. 如果上面的对应为上有奇数,就对应位+1。

上面的这个方法计算是非常方便的, 为何得到奇数要+1呢。

文件的最大权限是666,都是偶数,你得到奇数,说明你的umask有奇数啊,读为4,写为2,都是偶数,说明你有执行权限的。

就按照上面的umask=023为例,在计算其他用户权限的时候6-3=3 ,6是读写,3是写和执行,其实应该是读写权限减去读权限的得到写权限的,相当于我们多减去了一个执行权限。所以结果加1。

5 umask的修改

umask 的修改分2中, 临时修改的和永久修改的

临时修改:


[root@bogon test]# umask 023
[root@bogon test]# umask
0023
[root@bogon test]# 

永久修改:

可以编辑以下文件 添加umask=022。

交互式登陆的配置生效:

/etc/profilekGwFWWVLdV < /etc/profile.d/*.sh < ~/.bash_profile < ~/.bashrc </etc/bashrc 【/etc/bashrc的配置最有效 可以覆盖前面的配置】

非交互登陆的配置生效:

~/.bashrc < /etc/bashrc  < /etc/profile.d/*.sh

6 常用umask


[root@bogon test]# umask 002
[root@bogon test]# umask
0002
[root@bogon test]# umask 022
[root@bogon test]# umask
0022

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

--结束END--

本文标题: 详解linux下umask的使用

本文链接: https://lsjlt.com/news/20605.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 详解linux下umask的使用
    最近开始学习linux ,看完马哥的linux课程关于umask的这个部分, 写这篇博客希望加深下我对umask的理解 和对umask不太清楚的博友一些帮助。 1 umask 是什么 当我们登录系统之后创建一个文件是会...
    99+
    2022-06-04
    linux umask使用
  • linux下umask命令用途原理和计算方式详解
    目录umask umask用途原理1. umask值2. 文件目录权限最大值3. 常规计算4. 严谨计算umask值修改1. 临时生效(当前会话)2. 永久生效总结umask umask用途 umask令新建文件和目录拥...
    99+
    2022-06-04
    umask使用详解 umask命令用途原理
  • Linux的UMASK权限怎么使用
    本篇内容主要讲解“Linux的UMASK权限怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux的UMASK权限怎么使用”吧!在linux系统中,我们创建一个新的文件或者目录的时候,...
    99+
    2023-06-27
  • Linux中如何使用umask命令
    这篇文章主要介绍了Linux中如何使用umask命令,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Linux常用命令umask命令指定在建立文件时预设的权限掩码,umask可...
    99+
    2023-06-28
  • Linux的umask命令怎么用
    这篇文章给大家分享的是有关Linux的umask命令怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在linux系统中,我们创建一个新的文件或者目录的时候,这些新的文件或目录都会有默认的访问权限,umask命...
    99+
    2023-06-27
  • linux 下selenium chrome使用详解
    安装chrome wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm yum install ./go...
    99+
    2022-06-03
    linux selenium chrome selenium使用chrome
  • Linux基础命令umask的用法
    这篇文章主要介绍“Linux基础命令umask的用法”,在日常操作中,相信很多人在Linux基础命令umask的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux基础命令umask的用法”的疑惑有所...
    99+
    2023-06-06
  • linux下source命令使用详解
    Linux Source命令及脚本的执行方式解析 当我修改了/etc/profile文件,我想让它立刻生效,而不用重新登录;这时就想到用source命令,如:source /etc/profile 对so...
    99+
    2022-06-04
    详解 命令 linux
  • linux下dd使用方法详解
    本篇内容介绍了“linux下dd使用方法详解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 命令简介dd 的主要选项:指定数字的地方若以下列...
    99+
    2023-06-13
  • 如何在linux系统中使用UMASK权限
    这篇文章将为大家详细讲解有关如何在linux系统中使用UMASK权限,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。  umask一般是用在你初始创建一个目录或者文件的时候赋予他们的权限。  ...
    99+
    2023-06-13
  • Linux下Makefile的编写与使用详解
    目录MakefileMakefile文件命名和规则Makefile的工作原理Makefile变量Makefile函数Makefile clean规则Makefile 一个工程文件中的源文件可能有很多,并且不同的功能、模块...
    99+
    2022-06-04
    Linux下Makefile编写介绍 Linux系统Makefile使用介绍
  • Linux下core文件的使用方法详解
    前言 有时候程序会异常退出而不带任何日志,此时就可以使用 code 文件进行分析,它会记录程序运行的内存,寄存器,堆栈指针等信息 什么是core文件 通常在 linux 下遇到程序异常退出或者中止,我们都会使用 cor...
    99+
    2022-06-04
    linux core文件 linux下core文件 linux生成core文件
  • Linux下tcpdump命令解析及使用详解
    简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。tcpdump可以将网络中传送的数据包的“头”完全截获下来...
    99+
    2022-06-03
    Linux tcpdump命令
  • linux下scp和sftp命令使用详解
    目录前言1. scp 使用2. sftp 使用3. scp 和 sftp 有啥区别?用哪个好?总结前言 scp 和 sftp 是一种远程文件加密传输协议,讲通俗点就是用来操控本地/远程文件,不知道你注意到了没有,它们开头...
    99+
    2022-06-04
    linux中scp命令 linux中sftp命令
  • Linux系统下gcc命令使用详解
    目录一.预处理二. 编译三.汇编四.链接1.gcc的安装(以Ubuntu为例) sudo apt-get install build-essential 安装完后可以通过 gcc --version 查看版本。 让我们在...
    99+
    2022-06-04
    Linux GCC命令的详解 linux安装gcc命令
  • Linux下监视NVIDIA的GPU使用情况详解
    在使用TensorFlow跑深度学习的时候,经常出现显存不足的情况,所以我们希望能够随时查看GPU时使用率。如果你是Nvidia的GPU,那么在命令行下,只需要一行命令就可以实现。 1. 显示当前GPU使用情况 Nvid...
    99+
    2022-06-04
    Linux 监视NVIDIA GPU使用 Linux NVIDIA GPU
  • 详解Linux下crontab的使用与注意事项
    crontab是一个用于设置周期性被执行的指令。其守护进程为crond. crontab分为两种配置模式,一种为用户级的crontab,一种为系统级的crontab,这里我们分开来谈。 用户级crontab 用户使用新...
    99+
    2022-06-04
    Linux crontab 使用 Linux crontab
  • linux下umask命令用途原理和计算方式是什么
    这篇文章主要介绍“linux下umask命令用途原理和计算方式是什么”,在日常操作中,相信很多人在linux下umask命令用途原理和计算方式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux下u...
    99+
    2023-06-21
  • Clion下vcpkg的使用详解
    环境 ubuntu 20+ clion 2021.1 背景 在Linux下,每次新创建1个项目,可能会使用一些第三方库,比如: toml解析 spdlog日志 难...
    99+
    2024-04-02
  • 详解linux下tree命令的用法
    tree命令,主要功能是创建文件列表,将所有文件以树的形式列出来 linux下的tree就比较强大了,但一般系统并不自带这个命令,需要手动下载安装, 安装 : yum -y install tree ...
    99+
    2022-06-04
    详解 命令 linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作