umask命令介绍 umask命令,通过这个值可以确定文件和目录的默认权限是什么。 默认情况下,目录的权限值为755(rwxr-xr-x),普通文件的默认权限为644(-rw-r--r--),umask默认值为0022(----w--w-) 例子对比 [root@hf-01 ~]# touch ~]# mkdir 123 [root@hf-01 ~]# ls -ld 123 drwxr-xr-x. 2 root root 6 10月 26 08:39 123 [root@hf-01 ~]# umask 这是系统root用户的umask值0022,通过这个值就可以确认文件的默认权限,也可以确认目录的默认权限是什么 0022 [root@hf-01 ~]# umask 002 这里更改默认权限, 则预设没有可执行权限,只有rw两个权限,最大值为666(-rw-rw-rw) 若用户建立目录,则预设开放所有权限,最大值777(rwxrwxrwx) umask算法 当umask=003 目录的权限:777
umask命令 在Linux和其他类Unix的操作系统上,将使用一组默认权限创建新文件,具体来说,可以通过应用称为umask的权限掩码,以特定方式限制新文件的权限,umask命令指定在建立文件时预设的权限掩码 语法 umask [-S] [mask] 参数 -S: 以文字的方式来表示权限掩码。 mask: 果指定了有效的掩码,则将umask设置为此值,如果未指定掩码,则返回当前的umask值。 工作 本质上,umask的每个数字都从操作系统的默认值中减去,以获得定义的默认值,这不是真正的减法,从技术上讲是将掩码按位取反,然后使用逻辑AND操作将此值应用于默认权限,例如umask值为0022: 示例 查看系统当前umask值。 umask # 0022 以符号表示形式表示当前系统权限掩码。 umask -S # u=rwx,g=rx,o=rx # 实际上表达的是在所有者或者组以及其他人中的哪些权限已经被取消 将系统umask值设置为022。
umask是Linux下创建的权限屏蔽字。如果是普通用户,那么基本是不会更改umask的值的。一般而言,在Linux启动的时候,由shell设置一次。umask的值是一个八进制的数字。 屏蔽位 意义 0400 其他读 0200 其他写 0100 其他执行 0040 组读 0020 组写 0010 组执行 0004 用户读 0002 用户写 0001 用户执行 下面,我么来看一下umask 帮助详细的介绍了umask命令的使用。我们来具体使用一下umask命令。 ? 我的Ubuntu系统当前的掩码是0002。尝试加上参数来使用umask命令。 ? ?
函数umask为进程设置权限掩码。并且返回之前的掩码值。它是为数不多的没有出错返回的函数。函数原型和依赖的头文件如下所示: ? 函数的参数就是文件权限。 注意:在某一个进程中更改了umask,这并不影响其父进程的umask值(父进程通常是shell)。下面这个例子很好的体现了这一点。 O_APPEND | O_CREAT,0664); if (-1 == fd) { perror("open file"); exit(1); } umask
在说umask的用法之前我们现在了解一下,umask是什么? umask一般是用在你初始创建一个目录或者文件的时候赋予他们的权限 当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。 umask设置了用户创建文件的默认 权限,它与chmod配套使用,chmod设置的是文件权限码。 一般在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中设置umask值。 umask值就是指“Linux文件的默认属性需要减掉的权限”。 umask一般是用在你初始创建一个目录或者文件的时候赋予他们的权限。
Screenshot 2021-10-26 at 10.52.21.png umask: 用于设置新创建文件的默认权限, 不同的用户具有不同的umask, 因此, 使用不同用户创建的文件与文件夹具有不同的权限 umask解释: 四位分别对应: 特殊权限, user, group, other, 对应权限为7-数字 后三位002, 表示 rwx,rwx,rx Screenshot 2021-10-26 at 10.53.37.png umask设定: umask 000 plus: 一般来说, root用户的umask为0022, 普通用户的umask为0002, 这是出于权限控制与安全角度进行考虑的
umask值通常用八进制表示(如022, 002, 077)。 实际权限 = 默认最大权限 - umask 值。 2. 修改umask的方法 两种修改方式,一种临时,一种永久; 临时修改(仅对当前Shell会话有效) 直接在终端输入umask命令加新值: umask <新值> 示例: (1)设置umask为022(常见默认值 ,新文件权限644,目录755): 命令:umask 022 (2)设置umask为002(用户和组有写权限,新文件664,目录775,适用于协作环境): 命令:umask 002 (3)设置umask 为077(最严格,仅用户自己有权限,新文件600,目录700): 命令:umask 077 验证当前umask配置状态 命令:umask 永久修改(对所有新登录会话生效) 需要修改用户的Shell 配置文件 例如umask 002或umask 022 (3)保存并退出编辑器: Nano: 按Ctrl+O保存,按Enter确认文件名,再按Ctrl+X退出。
说起来umask是个很常见的命令,但很多人其实并不完全理解它。 umask用在创建文件或目录时设置权限掩码,通常是0022: shell> umask 0022 注:0022等价于022,0022中第一个0用于sticky-bit,本文不做讨论,有兴趣的请自查。 foo.zip 此时查看目录和文件的权限,分别是: foo_dir:755(drwxr-xr-x) foo_file:644(-rw-r–r–) 这是因为目录的基准权限是777,文件的基准权限是666,由于umask 缺省是022,所以: 目录:777 – 022 = 755 文件:666 – 022 = 644 注:权限计算实际上是二进制位的与操作,参考All About the umask and Permissions 而当我们以非root身份运行tar命令时,虽然会应用umask,但tar有点特殊,它使用目录和文件本身的权限作为基准权限,而不是777(目录)和666(文件),所以最终的权限变成了755(777 – 022
1.功能 umask为shell内建命令,设置创建文件时的权限掩码。权限掩码由3个八进制数字组成,将777(八进制)减掉权限掩码后,即可得到新创建文件的默认权限。它与chmod的效果刚好相反。 2.语法 umask [选项] [权限掩码] 3.选项说明 选项 功能 -p 显示当前权限掩码 -S 以字符方式表示权限掩码 注意: 处于安全的考虑,普通文件的执行权限不能通过权限掩码来设置,必须手工修改 4.典型示例 (1)显示当前权限掩码 umask //输出0222 umask –S //输出u=rwx,g=rwx,o=rx (2)设置权限掩码 [dablelv@TENCENT64 ~]$ umask 044 [dablelv@TENCENT64 ~]$ umask u=rwx,g=wx,o=wx ---- 参考文献 [1]man umask
#仅仅更改123的所属组为user1 #chown -R zhdy:root /tmp/343 #级联批量更改343目录及子目录和文件全部更改所属者为zhdy 所属组为root umask 系统默认的umask为0022 当我们创建一个文件 默认的权限为644<rw-r–r–> 当我们创建一个目录 默认的权限为755<rwx-r-xr-x>;是因为目录需要打开,打开就需要执行权限! 当然我们也可以更改系统的默认; 例:umask 002 002<——-w-> 当我重新创建一个文件 666<rw-rw-rw-> – 002<——-w-> = 664<rw-rw-r–> 当我重新创建一个目录 777<rwxrwxrwx> – 002<——-w-> = 775<rwxrwxr-x> 例2: umask 033 033<—-wx-wx> 当我重新创建一个文件 666<rw-rw-rw-> –
这就需要用到我们今天要讲的命令——umask了。 umask是什么 umask可以指定当前用户在新建文件和目录时的默认权限。 其是一个数值,可以直接用umask命令查看当前用户的umask值: root@study-machine:~# umask 0022 可以看到,当前用户的umask值为0022,那么这个0022是什么意思呢 对于目录而言,则有些不同,我们还是以umask值0022为例进行分析。 使用umask 前面说了这么多,那么如何使用umask呢?很简单,只要在umask命令后面加上要设置的umask值就行了。 接下来我们设置umask值为002来验证一下: root@study-machine:~/work# umask 002 root@study-machine:~/work# umask 0002 root
常用 umask 常用的umask及所对应的目录和文件权限。 umask 002 else umask 022 fi # 设置系统 umask,在 /etc/profile 末尾添加 umask 022即可 $ echo "umask 022" ~/.bash_profile vsftpd中的umask使用 vsftpd中的umask参数: local_umask:本地用户的 umask anon_umask:虚拟用户的 umask # 查看默认 umask $ grep -C 1 umask /etc/vsftpd/vsftpd.conf local_umask=027 # 设置 umask 为 0022 $ sed -i 's/local_umask # 查看默认 umask $ grep -C 1 umask bin/catalina.sh if [ -z "$UMASK" ]; then UMASK="0027" fi umask $UMASK
这就需要用到我们今天要讲的命令——umask了。 umask是什么 umask可以指定当前用户在新建文件和目录时的默认权限。 其是一个数值,可以直接用umask命令查看当前用户的umask值: root@study-machine:~# umask 0022 可以看到,当前用户的umask值为0022,那么这个0022是什么意思呢 对于目录而言,则有些不同,我们还是以umask值0022为例进行分析。 使用umask 前面说了这么多,那么如何使用umask呢?很简单,只要在umask命令后面加上要设置的umask值就行了。 接下来我们设置umask值为002来验证一下: root@study-machine:~/work# umask 002 root@study-machine:~/work# umask 0002 root
所以引入umask值来控制用户在创建文件或目录是的权限问题。 umask的定义与使用: 1.在命令行中直接输入umask + 值 就会定义当前的用户创建文件或目录是更改了原有的权限。 因为umask值改变了。 root 0 Jul 25 17:16 umask2.txt 注意:我们在命令行中定义的umask值使用的是数字,我们也可以使用直接定义的方法“umask u=rw,g=r, o= ” 系统umask 这里需要再次注意的是当我们更改umask值之后如果文件默认的666减去我们更改umask值得到的结果如果有奇数,则统一加1,目录则不用管。 2. 把umask值写入配置文件中。 [root@localhost testdir]# umask -p umask 0033 //使用umask -p 查看当前的umask值并显示umask值本身的 字符串,这不就可以让我们调用了吗
在linux系统中,我们创建一个新的文件或者目录的时候,这些新的文件或目录都会有默认的访问权限,umask命令与文件和目录的默认访问权限有关。 1.命令简介 umask 为 Shell 内建命令,用于设置创建文件时的权限掩码。 权限掩码由 3 个八进制数字组成,将 777(八进制)减掉权限掩码后,即可得到新建文件的默认权限。 2.命令格式 umask [-p] [-S] [MODE] 后不跟任何选项与参数单独执行 umask,则以八进制格式显示当前权限掩码。 umask 0022 (2)以字符形式显示新建文件的默认权限。 #设置权限掩码 umask 044 #查看权限掩码 umask 044
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/167333.html原文链接:https://javaforall.cn
- 默认权限控制 控制着linux里面默认的权限 4.1 系统中文件和目录默认权限 file---666 -rw-rw-rw dir ---777 drwxrwxrwx 4.2 umask 反掩码计算 默认的最大权限减去 umask 4.2.1 当umask为偶数 实例4-1 umask为0022 文件: file- 666-022=644 目录: dir- 777-022=755 4.2.2 当umask为奇数 实例4-2 umask为0032 4.3 当umask为奇数时,计算文件的默认权限的时候,要在奇数位加1 file- 666-032=634 +010=644 目录的不变 4.4 示例umask=035 [root@znix ~]# umask 035 [root@znix ~]# touch file035 [root@znix ~]# mkdir dir035 [root 002 else umask 022 fi 解释: 如果 [ 用户UID>=199 ] 并且 [ 用户的名字 == 用户组名字 ];然后 umask 002 那么 umask
umask值用于设置用户在创建文件时的默认权限,当我们在系统中创建目录或文件时,目录或文件所具有的默认权限就是由umask值决定的。 对于root用户,系统默认的umask值是0022;对于普通用户,系统默认的umask值是0002。执行umask命令可以查看当前用户的umask值。 命令可以修改umask值,比如将umask值设为0077。 umask命令只能临时修改umask值,系统重启之后umask将还原成默认值。 如果要永久修改umask值,需要修改/etc/profile文件或是修改/etc/bashrc文件,例如要将默认umask值设置为027,那么可以在文件中增加一行“umask 027”。
2.16 umask命令 当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。 umask的默认值可以更改,但是只有在$[HOME]/.bashrc下增加umask值才可以永久定义自己的umask值,否则只是临时更改。 语法: umask xxx (此处xxx代表三个数字) [root@adai002 ~]# umask 查看umask值 0022 即:umask的预设是0022 [root@adai002 ~]# umask 020 预设umask值为020 [root@adai002 ~]# umask 0020 [root@adai002 ~]# umask 022 [root@adai002 ~ ]# umask 0022 注: 默认状态下,文件umask+chmod=666;目录umask+chmod=777(限于权限位加减法)。
这篇教程教将指导 Linux 用户如何永久性地更改其系统的 Umask 值。特别建议全新安装的用户学习(想知道为什么的话,请移步下文) Umask 是什么? 解释下,UMASK 代表用户掩码或用户文件创建掩码,它用于新创建的文件和文件夹,是其默认权限的基础。 ? 值是 0022(或022),可以在终端模拟程序中输入 umask 命令来查看。 也可以运行 “umask 八进制值掩码” 命令(例如 umask 027)来临时改变这个值。 你也许知道,新创建的文件的默认权限设置原本应该是 0666,文件夹的是 0777。 言归正传,用户可以按他们所愿来修改默认的 Umask 值,当然首先要保证修改的值合法。