1.umask介绍
Linux 中umask的工作方式与chmod命令类似,它也用于定义文件或目录的权限。它们之间的区别在于chmod用于改变已有文件或目录的权限,而umask用于定义新建文件或目录的默认权限。在Red Hat LInux中,是无法配置新建文件自动具有可执行权限的,因为具有可执行权限的文件越少,黑客破解系统的可利用的文件就越少,以此提高安全性。
2.umask值含义
每次新建一个文件时,文件的默认权限是由umask的值决定的。
当我们输入umask命令时,它会输出一个4为的八进制数值,如0002。
其中第一个0与特殊权限有关,可以暂时不用理会,后三位002则与普通权限(rwx)有关,其中002中第一个0与用户(user)权限有关,表示从用户权限减0,也就是权限不变,所以文件的创建者的权限是默认权限(rw),第二个0与组权限(group)有关,表示从组的权限减0,所以群组的权限也保持默认权限(rw),最后一位2则与系统中其他用户(others)的权限有关,由于w=2,所以需要从其他用户默认权限(rw)减去2,也就是去掉写(w)权限,则其他人的权限为rw - w = r,则创建文件的最终默认权限为 -rw-rw-r-- 。
同理,目录的默认权限为 drwxrwxrwx,则d rwx rwx rwx - 002 = (d rwx rwx rwx) - (- --- --- -w-) = d rwx rwx r-x,所以用户创建目录的默认访问权限为 drwxrwxr-x 。
即umask值的某位被设置,等价于在新建文件或目录时将禁用对应的权限。
创建一个文件/目录并查看他的权限
touch test.txt //linux中用于创建一个新的文件命令或者更新已存在文件的时间戳;快速创建新文件而不需要写入内容。
用法:touch filename.txt
mkdir test
可以看到文件test.txt的权限为 -rwx-rwx-r-- ,目录test的权限为 drwxr-xr-x ( . 代表当前目录)。
umask 命令显示的为umask的数字值,还可以使用命令 umask -S 来显示umask的符号值:
1.查看umask值方式
在linux下我们查看的方式有两种3种
1)直接输入umask,可以看到数字形态的权限设置分数;
2)umask加-S(Symbolic)参数,以符号类型的方式来显示出权限;
3)ls命令,可以显示符号类型的权限以及所有该目录下文件,目录的权限。
2.更改umask值
可以通过命令 “umask 值” 的方式来更改umask值,比如我要把umask值改为027,则使用命令 umask 027 即可。改成027后,用户权限不变,群组权限减掉2,也就是去掉写(w)权限,其他用户减7,也就是去掉读写执行权限(rwx),所以其他用户没有访问权限。
可以看到文件的默认访问权限变为了 -rw-r----- ,目录test的默认访问权限变为了 drwxr-x--- 。这种方式并不能永久改变umask值,只是改变了当前会话的umask值,且不会影响之前创建的文件的umask值。打开一个新的terminal输入umask命令,可以看到umask值仍是默认的002。
要想永久改变umask值,则可以修改文件/etc/bashrc,在文件中添加一行 umask 027 。
3.umask权限数值对照表
0 | --- | 无权限 |
1 | --x | 只具有执行权限 |
2 | -w- | 只具有写权限 |
3 | -wx | 具有写和执行全新啊 |
4 | r-- | 只具有读权限 |
5 | r-x | 具有读和执行权限 |
6 | rw- | 具有读和写权限 |
7 | rwx | 具有读、写和执行权限 |
4.设置文件属性与权限
为了数据的安全,系统需要给予不同身份的用户、用户组对应的文件权限
chown:修改文件属主、属组。修改属主的同时也可以修改属组,只需要在属主与属组之间加入“,”或“:”即可。一般使用“:”以免因属主名称含有“.”造成系统误判。
可以看到file的属主变了
我们可以通过groupadd来增加组,来讲file属组改变,改变属组时要将其属主也加上用“.”连接,属主也可以通过useradd增加
chgrp:修改文件属组。(只改变文件属组)
若要将某目录下的所有子目录或文件同时修改属主或属组,只需要在chown与chgrp命令后添加-R即可
chmod:修改文件权限。
设置权限的两种方式:一种为符号,一种为数字
符号修改权限是使用u、o、g这三个符号代表属主、属组、其他用户这3种身份,a代表全部身份,r、w、x符号代表读、写、执行,通过赋值符增加、删除、覆盖文件权限。
chmod功能:
命令 | 对象 | 赋值符 | 权限类型 | 目标文件 |
chmod | u g o a | + - = | r w x | file |