linux权限和umask值

umask值

umask值用于设置用户在创建文件时的默认权限,当我们在系统中创建目录或文件时,目录或文件所具有的默认权限就是由umask值决定的。

对于root用户,系统默认的umask值是0022;对于普通用户,系统默认的umask值是0002。执行umask命令可以查看当前用户的umask值。

umask值一共有4组数字,其中第1组数字用于定义特殊权限,我们一般不予考虑,与一般权限有关的是后3组数字。

默认情况下,对于目录,用户所能拥有的最大权限是777;对于文件,用户所能拥有的最大权限是目录的最大权限去掉执行权限,即666。
因为x执行权限对于目录是必须的,没有执行权限就无法进入目录,而对于文件则不必默认赋予x执行权限。

对于root用户,他的umask值是022。
当root用户创建目录时,默认的权限就是用最大权限777去掉相应位置的umask值权限,即对于所有者不必去掉任何权限,
对于所属组要去掉w权限,对于其他用户也要去掉w权限,所以目录的默认权限就是755;
当root用户创建文件时,默认的权限则是用最大权限666去掉相应位置的umask值,即文件的默认权限是644。

https://www.cnblogs.com/wish123/p/7073114.html

目录的权限解释

  • 读权限(r)表示可以列出存储在该目录下的文件,即读目录内容列表。这一权限允许Shell使用文件扩展名列出相匹配的文件名。
  • 写权限(w)表示允许用户从目录中删除或添加新的文件,通常只有文件主才有写权限。
  • 执行权限(x)表示允许用户在目录中查找,并能用cd命令将工作目录改到该目录。如果一个目录只有读权限,那么只能读取该目录下面的所有文件,不能读取文件的详细信息。即不能用ls -l 查看该目录下的文件的详细信息,只能看到文件名。

linux 文件权限的第一个字符

  • d:表示是一个目录,事实上在ext2fs中,目录是一个特殊的文件。
  • -:表示这是一个普通的文件。
  • l: 表示这是一个符号链接文件,实际上它指向另一个文件。
  • b:块设备文件,例如硬盘的存储设备等。
  • c:字符设备文件,如键盘等。
  • s:表示是套接字文件,此主要跟网络程序有关。
  • p:表示是管道文件。