精华内容
下载资源
问答
  • linux umask命令
    2021-05-16 19:12:41

    umask命令用来设置限制新建文件权限的掩码。当新文件被创建时,其最初的权限由文件创建掩码决定。用户每次注册进入系统时,umask命令都被执行, 并自动设置掩码mode来限制新文件的权限。用户可以通过再次执行umask命令来改变默认值,新的权限将会把旧的覆盖掉。

    语法

    umask(选项)(参数)

    选项

    -p:输出的权限掩码可直接作为指令来执行;

    -S:以符号方式输出权限掩码。

    参数

    权限掩码:指定权限掩码。

    实例

    利用umask命令可以指定哪些权限将在新文件的默认权限中被删除。例如,可以使用下面的命令创建掩码,使得组用户的写权限,其他用户的读、写和执行权限都被取消:

    umask u=, g=w, o=rwx

    执行该命令以后,对于下面创建的新文件,其文件主的权限未做任何改变,而组用户没有写权限,其他用户的所有权限都被取消。

    应注意:操作符“=”在umask命令和chmod命令中的作用恰恰相反。在chmod命令中,利用它来设置指定的权限,而其余权限则被删除;但是在umask命令中,它将在原有权限的基础上删除指定的权限。

    不能直接利用umask命令创建一个可执行的文件,用户只能在其后利用chmod命令使它具有执行权限。假设执行了命令umask u=, g=w, o=rwx,虽然在命令行中,没有删去文件主和组用户的执行权限,但默认的文件权限还是640(即 rw-r-----),而不是750(rwxr-x---)。但是,如果创建的是目录或者通过编译程序创建的一个可执行文件,将不受此限制。在这种情况 下,会设置文件的执行权限。

    也可以使用八进制数值来设置mode。由于在umask中所指定的权限是要从文件中删除的,所以,如果该文件原来的初始化权限是777,那么执行命令umask 022以后,该文件的权限将变为755:如果该文件原来的初始化权限是666,那么该文件的权限将变为644。

    可以使用下面的命令检查新创建文件的默认权限:

    umask -s

    选项-s表示以字符形式显示当前的掩码。如果直接输入umask命令,不带任何参数,那么将以八进制形式显示当前的掩码。系统默认的掩码是0022。

    更多相关内容
  • Linux umask命令 Linux umask命令指定在建立文件时预设的权限掩码。 umask可用来设定[权限掩码]。[权限掩码]是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。 语法umask...
  • Linux umask命令

    2021-03-23 18:17:02
    umask是什么? umask的值与建立文件是默认的权限有关; 如何看umask的值呢? 在终端输入 umask即可,如图1 图1umask的数值与建立的文件(此处为广义的文件,包括文件和目录)的默认权限有什么关系呢 ? 建立...

    umask是什么?

    umask的值与建立文件是默认的权限有关;

    如何看umask的值呢?

    在终端输入  umask即可,如图1

    图1
    图1

    umask的数值与建立的文件(此处为广义的文件,包括文件和目录)的默认权限有什么关系呢 ?

     

    建立文件hello 与文件夹today,如图2

    图2

     

    在图2中,此时umask 的默认值为022。

    当建立文件hello时,其默认权限为644,644+022=666;

    当建立文件夹today时,其默认权限为755,755+022=777;

    修改umask的方法

    具体方式如图3

    图3

     

    总结 

    umask的值与Linux中建立文件(包括目录文件和普通文件)的默认权限有关,其值可通过指令更改。

    对于普通文件其权限默认值与umask数值相加等于666;

    对于目录文件其权限默认值与umask数值相加等于777;

     

     

     

     

     

     

     

    展开全文
  • linuxumask命令

    2022-05-24 15:49:00
    umask命令可以参看当前环境下创建文件/文件夹时的默认权限 查看umask的值 使用命令umask命令可以查看当前帐号环境下umask的值 可以看到这里0022,文件/文件夹权限就表示最高权限减去umask值: 权限r:4 w:2 x:1 ...

    umask命令可以参看当前环境下创建文件/文件夹时的默认权限

    查看umask的值

    使用命令umask命令可以查看当前帐号环境下umask的值
    在这里插入图片描述
    可以看到这里0022,文件/文件夹权限就表示最高权限减去umask值:

    权限r:4 w:2 x:1
    文件夹最高权限:777
    文件最高权限(文件默认无执行权限):666
    
    所以目前我的环境下的
    文件夹权限为:777-0022=755
    文件权限为:666-0022=644
    

    修改umask

    使用umask ***即可修改umask的值:

    uamsk 002
    

    但是这种方式并不能永久更改umask的值,只是将当前的shell临时更改
    如果要永久更改umask的值,可以将命令添加至/etc/profile或/etc/bashrc文件中,然后source改文件即可

    展开全文
  • 原标题:Linux umask 命令使用详解新建一个文件或目录,它的默认权限是什么?如果要修改一个用户创建的文件和目录的默认权限该如何做?本文将介绍相关的内容。说明:本文演示的Linux环境为 Ubuntu 16.04。文件的默认...

    原标题:Linux umask 命令使用详解

    新建一个文件或目录,它的默认权限是什么?如果要修改一个用户创建的文件和目录的默认权限该如何做?本文将介绍相关的内容。说明:本文演示的Linux环境为 Ubuntu 16.04。

    文件的默认权限

    为了查看用户创建的文件和目录的默认权限,我们用一个普通的用户创建文件 myfile 和目录 mydir 并查看它们的默认权限:

    fdfe6842c1f6c6dd1c0eb354c77a241c.png

    目录的权限为 775,文件的权限为 664。对比之下发现目录比文件多了执行的权限。这是因为执行权限对于目录来说是非常重要的,有了目录的执行权限才能够进入目录中进行文件操作。

    默认情况下对于目录来说最大的权限是 777,对于文件来说最大的权限一般为 666(只有可以执行的文件才添加可执行权限)。所以我们创建的文件和目录的共同特点是从最大权限中减去了 2,也就是其他用户的写权限。而这个被减去的值就是我们常说的 umask。umask 还是 bash 的一个内置命令,默认输出当前用户的 umask 值:

    注意,umask 显示的值为从默认的最大权限中减去的值。上图中的第一个 0 表示的是特殊权限位,这里我们可以暂时忽略它。

    系统的默认策略(Ubuntu16.04)

    系统在用户登录时通过 login 程序调用 pam_umask 模块设置用户默认的 umask。从 login 程序的配置文件 /etc/login.defs 中我们可以找到 umask 相关的配置:

    # UMASK is the default umask value for pam_umask and is used by

    # useradd and newusers to set the mode of the new home directories.

    # 022 is the "historical" value in Debian for UMASK

    # 027, or even 077, could be considered better for privacy

    # There is no One True Answer here : each sysadmin must make up his/her

    # mind.

    #

    # If USERGROUPS_ENAB is set to "yes", that will modify this UMASK default value

    # for private user groups, i. e. the uid is the same as gid, and username is

    # the same as the primary group name: for these, the user permissions will be

    # used as group permissions, e. g. 022 will become 002.

    #

    # Prefix these values with "0" to get octal, "0x" to get hexadecimal.

    #

    UMASK 022

    ……..

    # Enable setting of the umask group bits to be the same as owner bits

    # (examples: 022 -> 002, 077 -> 007) for non-root users, if the uid is

    # the same as gid, and username is the same as the primary group name.

    #

    # If set to yes, userdel will remove the user´s group if it contains no

    # more members, and useradd will create by default a group with the name

    # of the user.

    #

    USERGROUPS_ENAB yes

    乍一看上面的配置信息,用户的默认 umask 应该是 022 才对啊。仔细地阅读相关的说明信息发现,当 USERGROUPS_ENAB 被设置为 yes 时(默认值),对于 uid 和 gid 相同且用户名和主组名相同的用户,系统会把其 umask 改为 002。所以我们看到用户 nick 的 umask 为 002。

    由于 root 用户的特殊性,它默认的 umask 与其它用户是不同的,其值为 022:

    umask 命令

    umask 是 bash 的一个内置命令,用来显示或设置新建文件/目录的权限掩码(umask)。前面我们以数字的方式输出了用户默认的 umask 值,这次我们以符号的方式进行输出:

    $ umask -S

    以符号输出的就是用户创建目录时的默认权限,算一下,其实就是 775。

    为了改变用户创建的文件/目录的默认值,我们可以改变 umask 的默认值。

    设置 umask 值

    最简单的方式就是为 umask 命令指定一个数字:

    $ umask 026

    026 的含义为:去掉 group 中的写权限,去掉 other 中的读写权限。

    84721cdc997efbb393a1c723ff274b5f.png

    这时创建的文件权限为 640,目录权限为 751。注意,修改 umask 后只有新建的文件和目录受影响,已经存在的文件和目录的权限不会被影响。

    以符号的方式设置 umask 值

    比如下面的命令:

    $ umask u=, g=w, o=rwx

    上面的命令表示从 group 中去掉写权限,从 other 中去掉读写执行的权限。

    注意:"=" 号在 umask 命令和 chmod 命令中的作用恰恰相反。在 chmod 命令中,利用它来设置指定的权限,而其余权限则被删除。但是在 umask 命令中,将在原有权限的基础上删除指定的权限。

    在 ~/.bashrc 文件中为用户设置默认的 umask

    如果让用户每次登陆后都执行 umask 命令修改默认的 umask 值是不科学的,我们可以在用户的 ~/.bashrc 文件中执行 umask 命令,这样用户登录后 umask 的值自动就变成了设置的值。把下面的命令添加到 ~/.bashrc 文件的最后一行:

    umask 026

    保存后重新登录一次,然后查看 umask 的值:

    文件和目录的创建

    下面通过 strace 来跟踪文件和目录创建的过程,看看 mask 是如何影响它们的创建操作的。

    创建一个文件

    $ umask 077; strace -eopen touch testfile 2>&1 | tail -2; ls -l testfile

    f7cf1ef09c1b0a9c3734f89e4e4f990d.png

    上图中 open 函数使用 666 权限创建文件,但是由于设置了 umask 为 077,所以内核在创建文件时移除了 group 和 other 的 rwx 权限,最终创建的文件权限为 600。

    创建一个目录

    $ umask 022; strace -emkdir mkdir testdir; ls -ld testdir

    08988b7272bf606b2cf53cfedd08b0e7.png

    上图中 mkdir 函数使用 777 权限创建目录,但是由于设置了 umask 为 022,内核最终创建的目录权限为 755。

    umask 与 ACL

    如果一个目录没有被设置 default ACL,那么将由 umask 决定新文件的 ACL 权限。这种情况其实就是我们常见的没有 ACL 权限时的情况。比如我们设置 umask 为 026,那么创建的文件和目录的权限就是由它决定的。

    251d7b201d14c16d47a31ec00f38fa4a.png

    如果一个目录被设置了 default ACL,那么将会由文件创建函数的 mode 参数和目录的 default ACL 共通决定新文件的 ACL 权限,此时 umask 被忽略。还以 umask 026 为例,我们创建一个目录 dir2 并设置 default ACL 权限:

    $ setfacl -m d:u:tester:rwx dir2

    5da79cc8a19c6ef17ad6be553d6a2efe.png

    然后在 dir2 目录中创建文件 testfile:

    这次 testfile 的权限已经不受 umask 的影响了!

    总结

    umask 是一个看似简单实则影响重大的命令,根据实际需求设置好 umask 不仅能够保护系统的安全,还会让操作变得轻松(少一些 Permission denied)。

    来自:https://www.cnblogs.com/sparkdev/p/9651890.html返回搜狐,查看更多

    责任编辑:

    展开全文
  • linux 命令umask 详解

    千次阅读 2022-01-12 15:56:41
    linux 命令umask 详解
  • linux umask 命令

    2017-09-12 19:35:26
    说到umask 必定想到chmod 这个,两个都是给文件设置限权。 linux 每个文件或目录都是3种用户限权,分别为文件所有者,组员,其它;权限分别为读、写、运行,显示为rwx。 运行ls -l命令看文件前面显示,即可看到对...
  • linux umask命令

    2019-09-26 06:55:43
    umask命令  umask命令功能:显示、设置文件的缺省权限。  umask命令语法:umask [-S]  -S:以rwx形式显示新建文件或目录的缺省权限。  执行umask:  显示0022  第一个0:特殊权限位  022用户权限位,...
  • Linux umask 命令

    2017-06-12 16:05:17
    umask通常设置与profile中用于预设用户默认创建文件的权限。 if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 65536 ulimit -n 65536 else ulimit -u 65536 -n 65536 fi umask ...
  • linux命令--umask

    2021-08-18 19:11:28
    linux系统中,我们创建一个新的文件或者目录的时候,这些新的文件或目录都会有默认的访问权限,umask命令与文件和目录的默认访问权限有关。若用户创建一个文件,则文件的默认访问权限为-rw-rw-rw-,创建目录的默认...
  • Linux umask命令详解

    2021-05-13 10:00:52
    umask:控制默认文件和目录权限的值常用的命令展示查看当前环境的umask值【基于redhat6.4】方案一: sed -n '65,69p' /etc/bashrc写入/etc/bashrc --> 临时生效0022(root)0002(普通) 方案二: grep umask /etc/...
  • linux umask命令详解

    2018-04-24 11:15:54
    umask命令的作用:当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认权限,它与chmod的效果刚好相反,umask设置的是权限“补码...
  • linux umaskumask command is used to set default file and folder permission in Linux operatingsystem. File and folder permissions are important becausethe permission enables or deny different users,...
  • umask 命令返回或设置系统文件模式创建掩码的值。 umask 命令语法 用法: umask [-p] [-S] [mode] 用户文件创建掩码设置为模式。如果 mode 以数字开头,则将其解释为八进制数; 否则,它被解释为类似于 chmod...
  • Linuxumask详解

    千次阅读 2021-12-29 08:24:47
    Linuxumask详解 看了网上很多umask的文章,有的过于臃肿,越解释越迷糊,以下自己研究过程,仅供大家参考,有误,请指正: 1、umask到底是什么? 按照我个人理解就是对文件、文件目录权限控制的预设值(注意这个...
  • umask命令可用来设定权限掩码。权限掩码是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。 语法格式:umask [参数] [权限掩码] 常用参数: -S 以文字的方式来表示...
  • 功能说明:指定在建立文件时预设的权限掩码。语 法:umask [-S][权限掩码]补充说明:...当最初登录到系统中时, umask命令确定了你创建文件的缺省模式。这一命令实际上和chmod命令正好相反。系统管理员必须要设...
  • LINUX UMASK详解

    千次阅读 2021-05-16 11:17:06
    一 权限掩码umaskumask是chmod配套的,总共为4位(gid/uid,属主,组权,其它用户的权限),不过通常...umask的作用默认情况下的umask值是022(可以用umask命令查看),此时你建立的文件默认权限是644(6-0,6-2,6-2),建立...
  • umask[功能]通过设置一些位来禁止一些权限。...[举例]*显示当前的umask值:$umask输入之后,例如输出如下:0022这里,是系统的默认mask,因为是8进制,所以是0022不是022.*设置umask值为0022:$umask 0022这里...
  • linux umask命令参数及用法详解

    千次阅读 2014-05-20 21:12:53
    语 法:umask [-S][权限掩码]补充说明:umask可用来设定[权限掩码]。[权限掩码]是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。参 数: -S 以文字的方式来表示...
  • 命令名称:umask命令所在路径:/bin/umask执行权限:所有用户语法:umask [-S]-S 以rwx形式显示新建文件或目录缺省权限功能描述:显示、设置文件的缺省权限范例:$ umask $ umask -Sumask命令既可以显示文件的缺省值...
  • 文件权限管理;修改文件权限 - chmod;修改文件权限 - 示例;修改文件权限 - chown;修改文件权限 - 示例;修改文件权限 - chgrp;修改文件权限 - 示例;预设权限掩码 - umask;预设权限掩码 - 示例;谢谢聆听
  • 今天有人问linux创建文件,默认的权限是怎么来的,突然想不起了,搜索了下发现umask命令,大家回答的比较繁琐,其实这样理解比较好! 在linux控制台上敲umask命令,一般会得到0022,先普及个常识,创建文件不会带...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 46,712
精华内容 18,684
关键字:

linux umask命令