本文主要是介绍Linux命令(110)之umask,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
linux命令之umask
1.umask介绍
linux命令umask为linux内建命令,用于设置创建文件/目录时的权限掩码。
默认umask值为偶数,创建文件时,直接相减;如果有奇数,创建文件时,对应结果要加一。
另外,之所以文件用666去减,表示文件默认不能有执行权限(x);如果减得的结果中有执行权限(x),则需要将其加一。这个对目录而言,是没有任何效果。
2.umask用法
umask [参数] [MODE]
参数 | 说明 |
-p | 以八进制数字形式显示或设置权限掩码 |
-S | 以字符形式显示或设置新建文件的默认权限 |
备注:出于安全性考虑,文件的执行权限(x)无法通过权限掩码进行设置,需手动更改。
3.实例
3.1.查看当前默认权限掩码文件
命令:
tail -n 20 /etc/profile | head -n 10
[root@rhel77 ~]# tail -n 20 /etc/profile | head -n 10
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; thenumask 002 --当uid大于199且id -gn等于id -un时,umask设置为002
elseumask 022 --不满足上述条件时,umask设置为022
fifor i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; doif [ -r "$i" ]; then
[root@rhel77 ~]#
3.2.显示当前权限掩码
目录:
umask
OR
umask -p
[root@rhel77 ~]# umask
0022
[root@rhel77 ~]# umask -p
umask 0022
[root@rhel77 ~]#
3.3.以字符形式显示新建文件(针对目录)的默认权限
命令:
umask -S
[root@rhel77 ~]# umask -S
u=rwx,g=rx,o=rx
[root@rhel77 ~]#
3.4.创建默认文件(以当前默认权限掩码)
命令:
umask
touch aa
ls -l aa
[root@rhel77 ~]# su - tomcat
Last login: Tue Oct 31 09:42:34 CST 2023 on pts/0
[tomcat@rhel77 ~]$ umask
0002
[tomcat@rhel77 ~]$ exit
logout
[root@rhel77 ~]# umask
0022
[root@rhel77 ~]# touch aa
[root@rhel77 ~]# ls -l aa
-rw-r--r-- 1 root root 0 Oct 31 09:42 aa
[root@rhel77 ~]#
3.5.设置新的权限掩码,并创建文件
命令:
umask -p 023
touch aa
ls -l aa
[root@rhel77 ~]# umask
0022
[root@rhel77 ~]# umask -p 023
[root@rhel77 ~]# umask
0023 --umask中有奇数
[root@rhel77 ~]# touch aa
[root@rhel77 ~]# ls -l aa
-rw-r--r-- 1 root root 0 Oct 31 09:46 aa --创建的文件对应位加一
[root@rhel77 ~]#
3.6.基于默认权限掩码,创建目录
目录以777去减默认umask权限掩码
命令:
mkdir bb
ls -ld bb
[root@rhel77 ~]# mkdir bb
[root@rhel77 ~]# ls -ld bb
drwxr-xr-- 2 root root 6 Oct 31 09:51 bb
[root@rhel77 ~]#
这篇关于Linux命令(110)之umask的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!