首页 > 其他分享 >umask

umask

时间:2023-08-29 18:22:05浏览次数:30  
标签:profile umask etc udp1 权限 root

1、umask是什么

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

2、umask的作用

默认情况下的umask值是022(可以用umask命令查看),此时你建立的文件默认权限是644(6-0,6-2,6-2),建立的目录的默认权限是755(7-0,7-2,7-2)

[root@udp1 ~]# id
uid=0(root) gid=0(root) groups=0(root)
[root@udp1 ~]# umask
0022
[root@udp1 ~]# touch a.txt
[root@udp1 ~]# mkdir b
[root@udp1 ~]# ll
total 8
-rw------- 1 root root 2874 6月   2  2016 anaconda-ks.cfg
-rw-r--r-- 1 root root    0 6月  28 15:54 a.txt
drwxr-xr-x 2 root root 4096 6月  28 15:54 b
[root@udp1 ~]#

也可使用umask -S显示umask的符号值

[root@udp1 ~]# umask -S
u=rwx,g=rx,o=rx

3、linux默认的umask

linux系统新建文件默认没有执行权限,文件的最大权限为rw-rw-rw-(666),新建目录的最大权限为rwx-rwx-rwx(777),因为目录必须要有x才能进入。

umask的作用是设置用户环境下,创建文件或者目录的权限控制。一般umask的值是在 /etc/profile 文件中定义的,用户登入必须会读取这个文件,所以一般被设置在这个目录中。如一台centos6的系统中默认配置:

if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
    umask 002
else
    umask 022
fi

# 意思是账号uid大于199且uid=gid且用户名=用户组名的时候,umask值是002,而其他用户下,umask值是022

4、umask快速计算

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

为何得到奇数要+1呢?

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

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

5、umask的修改

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

临时修改:

[root@udp1 opt]# umask 023
[root@udp1 opt]# umask
0023
[root@udp1 opt]# 

永久修改:

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

交互式登陆的配置生效:

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

非交互登陆的配置生效:

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

标签:profile,umask,etc,udp1,权限,root
From: https://www.cnblogs.com/mmartin/p/17665586.html

相关文章

  • 无涯教程-Perl - umask函数
    描述此函数为当前进程设置umask(创建文件和目录时应用的默认掩码)。EXPR的值必须是八进制数。如果省略EXPR,则只需返回先前的值。语法以下是此函数的简单语法-umaskEXPRumask返回值此函数返回先前的umask值。例以下是显示其基本用法的示例代码-#!/usr/bin/perl-......
  • linux 中umask的作用(还可以)
    https://blog.csdn.net/sinat_42724379/article/details/124752536  ____________________________________________________________________________________________________________________ 我们知道在linux服务器中文件最大权限为666,而目录最大权限为777但是一般我......
  • umask
    umask显示或设置创建文件的权限掩码。概要umask[-p][-S][mode]主要用途显示当前的文件权限掩码。通过八进制数的方式设置创建文件的权限掩码。通过符号组合的方式设置创建文件的权限掩码。参数mode(可选):八进制数或符号组合。选项-p:当没有参数时指定该选项,执行产生......
  • Linux |权限|Umask和Chmod
    目录权限掩码查看权限更新权限踩过的坑权限掩码文件的默认权限为0666文件夹的默认权限为0777掩码的作用是用户在创建文件/文件夹时从文件的默认权限中去除掩码中的权限umask输出0002umask-S输出u=rwx,g=rwx,o=rxumask0111临时生效,作用于当前shell后续新建的文件/文件夹e......
  • 关于linux系统中umask值的说明-以及计算转换成默认权限符号的方法
    关于linux系统中的umask值,我们可以通过man手册的解释为:Theuserfile-creationmaskissettomode简单的理解,就是用户的umask的值决定着文件(也包括目录)创建时的默认权限,对于root用户来说,一般为0022[root@qq-5201351~]#umask0022这样可能还是不能很直观的表达出,可以通过......
  • Linux umask命令
    Linuxumask命令暂时只需要知道有这么个东西Linuxumask命令指定在建立文件时预设的权限掩码。umask可用来设定[权限掩码]。[权限掩码]是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。语法umask[-S][权限掩码]参数说明:-S以文......
  • about gpasswd/chown/umask/chgrp/chmod command in linux
    adminuserusesudocanbedo:(拥有sudo权限应该做什么?)1:add<username>to<groupname>groupsudogpasswd-a<username><groupname>2:remove<username>from<group......
  • cpumask、cpumask_t 和 cpumask_var_t
    1.实验代码#include<stdio.h>#include<stdlib.h>#include<string.h>#defineNR_CPUS32#defineBITS_PER_BYTE8#defineBITS_PER_TYPE(type)(siz......
  • 16.Linux-默认权限控制命令umask
    1.umaskLinux中umask的工作方式与chmod命令类似,它也用于定义文件或目录的权限。它们之间的区别在于chmod用于改变已有文件或目录的权限,而umask用于定义新建文件或目录的......
  • Linux基础10 特殊权限suid, sgid, sbit; 权限属性lsattr, chattr; 进程掩码umask
    一.特殊权限:1.suid(4000) SetUID(suid):会在属主权限位的执行权限上写个s 如果该属主权限位上有执行权限,则:s (小写) 如果该属主权限位上没有执行权限,则:S (大写) 授权方式:chmo......