Linux umask命令介绍
umask是一个用于设置或查看当前进程的文件模式创建掩码(file mode creation mask)的工具。文件模式创建掩码决定了新创建的文件或目录的权限位。umask会被open(2)、mkdir(2)等创建文件的系统调用使用,以修改新创建的文件或目录的权限。
Linux umask命令适用的Linux版本
umask命令在大多数Linux发行版中都是可用的,包括Ubuntu、Debian、Fedora、CentOS、Red Hat等。如果某些Linux系统没有安装umask命令,可以尝试使用以下命令安装:
- 对于使用apt-get的系统,如Ubuntu、Debian等:
[linux@bashcommandnotfound.cn ~]$ sudo apt-get update
[linux@bashcommandnotfound.cn ~]$ sudo apt-get install coreutils
- 对于使用yum的系统,如CentOS、Red Hat等:
[linux@bashcommandnotfound.cn ~]$ sudo yum update
[linux@bashcommandnotfound.cn ~]$ sudo yum install coreutils
- 对于使用dnf的系统,如Fedora等:
[linux@bashcommandnotfound.cn ~]$ sudo dnf update
[linux@bashcommandnotfound.cn ~]$ sudo dnf install coreutils
Linux umask命令的基本语法
umask命令的语法格式如下:
umask [-S] [mode]
其中,-S
选项表示以符号形式显示或设置umask值,mode
参数表示要设置的umask值,可以是八进制或符号形式。如果没有指定mode
参数,则表示显示当前的umask值。
Linux umask命令的常用选项说明
umask命令只有一个选项,即-S
,它的作用是以符号形式显示或设置umask值。符号形式的umask值由三个字母组成,分别表示用户(u)、组(g)和其他(o),后面跟着一个操作符(+、-或=)和一个或多个权限字母(r、w或x)。符号形式的umask值的含义如下:
- u+rw表示用户不拥有读和写权限。
- g-wx表示组不拥有写和执行权限。
- o-rwx表示其他不拥有任何权限。
Linux umask命令的实例
以下是一些使用umask命令的实例:
- 显示当前的umask值(八进制形式):
[linux@bashcommandnotfound.cn ~]$ umask
0022
- 显示当前的umask值(符号形式):
[linux@bashcommandnotfound.cn ~]$ umask -S
u=rwx,g=rx,o=rx
- 设置umask值为0000(八进制形式),表示新创建的文件或目录的权限为777(rwxrwxrwx):
[linux@bashcommandnotfound.cn ~]$ umask 0000
- 设置umask值为u+rw,g-wx,o-rwx(符号形式),表示新创建的文件或目录的权限为644(rw-r--r--):
[linux@bashcommandnotfound.cn ~]$ umask u+rw,g-wx,o-rwx
- 创建一个名为test.txt的文件,查看其权限:
[linux@bashcommandnotfound.cn ~]$ touch test.txt
[linux@bashcommandnotfound.cn ~]$ ls -l test.txt
-rw-r--r-- 1 linux linux 0 Nov 10 11:18 test.txt
- 创建一个名为test的目录,查看其权限:
[linux@bashcommandnotfound.cn ~]$ mkdir test
[linux@bashcommandnotfound.cn ~]$ ls -ld test
drwxr-xr-x 2 linux linux 4096 Nov 10 11:19 test
Linux umask命令的注意事项
- umask命令只影响当前进程及其子进程,不影响其他进程或系统的默认umask值。
- umask命令只能减少新创建的文件或目录的权限,不能增加。例如,如果设置umask值为0000,那么新创建的文件的权限为666(rw-rw-rw-),而不是777(rwxrwxrwx),因为文件的默认权限是666,而目录的默认权限是777。
- umask命令的八进制形式和符号形式的转换方法是:将八进制值的每一位用7减去,得到的结果就是符号形式的权限字母。例如,0022的八进制形式对应的符号形式是u=rwx,g=rx,o=rx,因为7-0=7(rwx),7-2=5(rx),7-2=5(rx)。
评论区