1、序言
Linux最优秀的地方之一在于提供了多用户、多任务环境。而为了让各个用户具有较保密的文件数据,文件的权限管理就变得很重要了。Linux将文件可存取访问的身份分为3个类别,分别是owner、group、others,且3种身份各有read(r)、write(w)、execute(x)等权限。一个用户可以属于某个用户组。
2、常用权限介绍
通常我们看到的文件/目录权限只有read(r)、write(w)、execute(x)。这些权限可以分别设置给owner、group、others。咱们使用如下一个例子来讲解。
使用ll命令查看到test.log的权限信息为-rwxrw-r--,共10位。
image.png
第1位代表资源类型,-代表文件类型。
第2位至4位代表给owner设置的权限,每位依次为read(r)、write(w)、execute(x)。若owner不拥有对应权限,则在相应位置-。
第5位至7位代表给group设置的权限,每位依次为read(r)、write(w)、execute(x)。若group不拥有对应权限,则在相应位置-。
第8位至10位代表给others设置的权限,每位依次为read(r)、write(w)、execute(x)。若others不拥有对应权限,则在相应位置-。
位于权限后的第一个字符串为owner,第二字符串为group。图中表示test.log的owner和group都为bellamy。若以另外一个用户sally去修改该文件的话,由于无写权限,则会有如下警告。root则可以正常修改test.log。
image.png
3、新建文件时的默认权限
当我们尝试新建一个文件test2.log时, 默认的权限设置为-rw-rw-r--, 如下:
image.png
怎么得来的呢?
一般创建的普通文件,主要用于读写数据,所以无需执行权限,那么默认的权限为-rw-rw-rw-。目录则给予所有权限drwxrwxrwx。然而细心的同学会发现test2.log的的默认权限为-rw-rw-r--,并不是-rw-rw-rw-。这是因为mask权限的存在, 使用umask可以观察到当前用户的mask值。mask值与一般权限有关的只有后面3位,分别对应user, usergroup, others的拥有的全限值。
image.png
那么-rw-rw-r--等于-rw-rw-rw-减去--------w-的值,仅减去了others的写权限。数字对应字符,可参考下一部分。
4、改变文件权限
使用chmod来改变文件权限。可通过使用数字或字符来改变文件权限。
使用数字改变文件权限
用4代表read(r),2代表w(write),1代表x(execute)。比如给新建的test2.log添加所有身份者(owner、user group、others)的所有权限,那么就用777。第1位7设置给owner,第2位7设置给user group,第3位7设置给others。
使用字符改变文件权限
用u代表owner,g代表user group,o代表others,a代表三个身份(owner、user group、others)。u、g、o可以两两组合使用,也可以单独使用,若想同时为3个身份设置权限则使用a。若是赋值权限则使用=;若是增加权限则使用+;若是减少权限则使用-。
为所有身份则减去x权限。
image.png
为owner设置rwx,为user group设置rx,为others设置rx。
image.png
网友评论