Linux系统文件默认权限
当用户创建一个文件或目录时,Shell会自动创建其默认的权限。默认权限是一个可以配置的选项。umask命令可以设置一个决定文件和目录默认权限的值。要注意这些默认权限只有在文件或目录第一次被创建时才起作用。在命令行执行如下命令可以查看默认的umask值。
Bruce_liu@MacBookAir $ umask
022
备 注: 八进制022对应二进制 000,010, 010 八进制002对应二进制000,000,010 ,八进制027对应二进制000,010,111,八进制077对应二进制000,111,111
umask命令用于指定在创建新文件或目录时要屏蔽(不包括)哪些默认权限。例如本系统默认屏蔽组w权限、其他用户w权限。umask命令接受一个参数:掩码。掩码是用来与文件或者目录可以被赋予的最大权限值进行计算的八进制值,计算结果将作为新文件或目录的权限。如下表:
可赋予的最大权限
类 型 | 新建对象的最大可能权限 | 类 型 | 新建对象的最大可能权限 |
文件 | rw-rw-rw- | 目录 | rwxrwxrwx |
建立一个新文件umask.txt,查看一下默认权限。如下命令:
Bruce_liu@MacBookAir $ touch umask.txt
Bruce_liu@MacBookAir $ ls -l umask.txt
-rw-r--r-- 1 liuxiaowei staff 0 Apr 1 23:23 umask.txt
新文件永远不会被赋予执行权限,执行权限配置必须在文件创建后添加。建立一个文件夹umask,查看一下默认权限。命令如下:
Bruce_liu@MacBookAir $ mkdir umask
Bruce_liu@MacBookAir $ ls -l ummask
drwxr-xr-x 2 liuxiaowei staff 64 Apr 2 09:17 umask
-rw-r--r-- 1 liuxiaowei staff 0 Apr 1 23:23 umask.txt
系统umask值022,如何影响到新文件及新目录权限的。如下表:
umask值022是如何影响到新文件以及新目录权限的
描 述 | 文 件 | 目 录 |
最大权限 | rw-rw-rw- | rwxrwxrwx |
使用的umask值 | ----M–M- | ----M–M- |
结果 | rw-r–r-- | rwxr-xr-x |
虽然任何八进制的值都可以作为文件权限的umask值,但有些值更常用。常用的umask值对新文件和目录的影响。
常用的umask值
值 | 文 件 | 目 录 | 值 | 文 件 | 目 录 |
002 | rw-rw-r– | rwxrwxr-x | 027 | rw-r----- | rwxr-x— |
022 | rw-r–r-- | rwxr-xr-x | 077 | rw------- | rwx------ |
注 意⚠️: 也可以使用符号法设置umask,例如命令umask u=rwx,g=rwx,o=rx与命令umask002相同。每个Shell环境都有其自有的umask值,如果在一个Shell环境中改变这个值,它不会影响其他Shell环境。为了对umask值做一个永久的变更,使得不同的登录都生效,添加umask命令至~./bash_profile文件即可。创建文件或目录后,可以使用chmod命令调整权限,以符合特定的需求。