设置umask命令操作创建一个文件或目录时
umask是设置权限掩码当你创建一个文件或目录非常常用的命令,通常0022:壳> umask
0022
注:0022等于0220022中的前0位为粘性位,本文不做讨论,有意者请自行检查。
为了演示方便以后,两个文件在Windows 7创建:
foo.zip(包括:目录foo_dir,文件foo_file)
Bar.tar(包括:目录bar_dir,文件bar_file)
当然,你不能使用Windows,我这样做,只是为了稍后再加载。
把这两个文件上传到Linux上,然后让我学习导演的声音,喊一声:动作!
操作foo.zip
壳>解压foo.zip
此时查看目录和文件的权限是:
foo_dir:755(drwxr-xr-x)
foo_file:644(rw rndash;rndash;)
这是因为该目录的基本权限是777,该文件的基本权力是666,因为umask默认是022,所以:
目录:777,022 = 755
文件:666,022 = 644
注:权限实际上是二进制位运算,指的是所有关于umask和权限。
操作bar.tar
壳>焦油XF bar.tar
这次有点不一样。我们要运行两个TAR命令。
第一次:将TAR命令作为根文件运行,然后查看目录和文件的权限,它们是:
bar_dir:777(drwxrwxrwx)
bar_file:777(- rwxrwxrwx)
第二次:在非根状态下运行TAR命令,然后分别查看目录和文件的权限:
bar_dir:755(drwxr-xr-x)
bar_file:755(- rwxr-xr-x)
注意:在运行TAR命令之前,请记住删除最后一次运行TAR命令生成的目录和文件,以免受到影响。
这两种结果之间存在一定的差异,可以在人焦油中找到有用的描述信息:
p,同样的权限,保留权限
提取所有保护信息
没有相同的权限
应用userrsquo;当提取文件的umask代替记录的权限
在使用TAR命令时,默认情况下是提取所有保护信息。无根,默认情况下是适用的userrsquo,umask,和userrsquo。
我们使用Windows在上传到Linux之前创建文件,因此文件和目录的初始权限为777。当我们用根运行tar命令,我们保留这个权限。当我们运行在非root身份tar命令,虽然应用umask,焦油是一位特殊的。它使用目录和文件本身的权限作为基准权限,而不是777(目录)和666(文件),因此最终权限变成755(777,022)。
顺便说一下,简要介绍如何轻松修改目录或文件的权限。
壳>找到 /路径式D xargs chmod 755 |
壳>找到 /路径- F型xargs chmod 644 |