Linux命令(110)之umask

linux命令之umask

1.umask介绍

linux命令umask为linux内建命令,用于设置创建文件/目录时的权限掩码。

默认umask值为偶数,创建文件时,直接相减;如果有奇数,创建文件时,对应结果要加一。

另外,之所以文件用666去减,表示文件默认不能有执行权限(x);如果减得的结果中有执行权限(x),则需要将其加一。这个对目录而言,是没有任何效果。

2.umask用法

umask [参数] [MODE]

umask参数
参数 说明
-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`" ]; then
    umask 002         --当uid大于199且id -gn等于id -un时,umask设置为002
else
    umask 022         --不满足上述条件时,umask设置为022
fi

for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
    if [ -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命令,linux,运维,服务器,umask)