首页 > 其他分享 >umask

umask

时间:2023-07-19 09:00:28浏览次数:36  
标签:八进制 符号 umask 用户 掩码 权限

umask

显示或设置创建文件的权限掩码。

概要

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

主要用途

  • 显示当前的文件权限掩码。
  • 通过八进制数的方式设置创建文件的权限掩码。
  • 通过符号组合的方式设置创建文件的权限掩码。

参数

mode(可选):八进制数或符号组合。

选项

-p:当没有参数时指定该选项,执行产生的输出格式可复用为输入;
-S:以符号组合的方式输出创建文件的权限掩码,不使用该选项时以八进制数的形式输出。

返回值

返回状态为成功除非给出了非法选项或非法参数。

例子

以下的例子均假设文件权限掩码为0022。

# 以八进制数的形式输出创建文件的权限掩码。
umask -p
# 执行结果:
umask 0022
# 以符号组合的方式输出创建文件的权限掩码。
umask -S
# 执行结果:
u=rwx,g=rx,o=rx

参考man chmod文档的DESCRIPTION段落得知:

  • u符号代表当前用户。
  • g符号代表和当前用户在同一个组的用户,以下简称组用户。
  • o符号代表其他用户。
  • a符号代表所有用户。
  • r符号代表读权限以及八进制数4
  • w符号代表写权限以及八进制数2
  • x符号代表执行权限以及八进制数1
  • +符号代表添加目标用户相应的权限。
  • -符号代表删除目标用户相应的权限。
  • =符号代表添加目标用户相应的权限,删除未提到的权限。

那么刚才以符号形式输出的结果u=rwx,g=rx,o=rx转化为八进制数等于0755

用八进制数来设置同样的权限,umask需要额外的执行减法0777 - 07550022,而chmod不需要。

符号组合模式的添加、删除、赋值权限。

# 添加权限:
# 为组用户添加写权限。
umask g+w
# 删除权限:
# 删除其他用户的写、执行权限
umask o-wx
# 赋值权限:
# 赋值全部用户所有权限,等价于umask u=rwx,g=rwx,o=rwx
umask a=rwx
# 清除其他用户的读、写、执行权限。
umask o=

创建文件夹、文件(假设当前目录不存在)

# 创建文件
touch test.sh
# 查看权限,发现执行权限的设置不起作用。
stat test.sh
# 创建文件夹
touch newdir
# 查看权限,发现执行权限的设置可以起作用。
stat newdir

注意

  1. 该命令是bash内建命令,相关的帮助信息请查看help命令。

  2. chmod用于更改已有对象的权限,umask影响之后新建对象的权限。

  3. 请谨慎使用该命令,特别是不要取消当前用户的读取权限,那样会导致你在终端使用TAB键补全时报错。

标签:八进制,符号,umask,用户,掩码,权限
From: https://www.cnblogs.com/linuxcmd/p/umask.html

相关文章

  • 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......
  • linux umask值的设置
    一、linux系统默认umask为022[root@localhost~]#umask0022查看umask值对应的权限[root@localhost~]#umask-Su=rwx,g=rx,o=rx022对应的目录权限是:777-022=7......