【Linux学习笔记】常用文件与目录权限

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。

image.png

使用字符改变文件权限
用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

你可能感兴趣的:(【Linux学习笔记】常用文件与目录权限)