Linux的权限讲解
接触Linux4、5年了,但是对它的权限到底如何管理的一直是一知半解,不过嘛,今天心血来潮,大致的了解一下,所以就有了这篇文章。
Linux需要对登录用户读写执行文件、进入目录、查看增删目录内容等操作进行控制,不能任由用户随意执行所有操作。所以就使用RWX访问控制对Linux的文件进行管理,RWX访问控制估计也是我们见得最多的访问控制了。当我们通过ls命令获取文件的详细信息时,其前面的rwx字符串就是对文件权限的标示,而后面跟的root root则是其所属用户和组的信息。如图一所示
RWX的组成及含义如图二所示。整个权限描述分为4段,第一段用于描述该文件的类型,可以是常规文件(-)、目录(d)、块设备(b)、链接(l)和字符设备(c)等等。
在Linux系统中,具体的权限用数字标识:
- 1—可执行的—x
- 2—可写的—w
- 4—可读的—r
- 2+4=6—可读可写的—rw
- 7—可读可写可执行的—rwx
所以我们通常使用
chmod 777 file
给文件赋予,所有用户可读可写可执行(777)的权限。
umake权限掩码
umask为用户文件创建掩码,是创建文件或文件夹时默认权限的基础。通常我们可以使用chmod修改linux中文件的权限。umask的作用与chmod的效果相反,具体看下面。
若没有文件掩码时,文件的默认权限为0666,文件夹的默认权限为0777。
原因:
- 创建文件一般是用来读写,所以默认情况下所有用户都具有读写权限,但是没有可执行权限,所以文件创建的默认权限为0666
- 而文件夹的x权限表示的是打开权限,所以这个权限必须要有,所以文件夹的默认权限为0777。
- 第一位代表特殊权限(suid:4、sgid:2、sbit:1),不是八进制的意思。一般将其设置为0,即系统默认。
权限掩码作用
上述的权限是在没有umask情况下的默认权限。但是系统为了保护用户创建文件和文件夹的权限,此时系统会有一个默认的用户掩码(umask),大多数的Linux系统的默认掩码为022。用户掩码的作用是用户在创建文件时从文件的默认权限中去除掩码中的权限。所以文件和目录创建之后的权限实际为:
创建之后的权限 = 默认权限(文件0666、文件夹0777)-umask
查看与修改默认掩码
#以数字方式查看掩码
umask
# 以符号形式查看掩码
umask -S
#修改掩码
umask 0000