快速读懂linux基本权限

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速读懂linux基本权限相关的知识,希望对你有一定的参考价值。

Linux系统是一个典型的多用户操作系统,不同的用户处于不同的地位,为了保护系统的安全性,linux系统对于不同用户访问同一个文件或目录做了不同的访问控制。而这种控制就是通过权限实现的,本节课我们介绍linux权限的使用

介绍

Linux中每个文件或目录都有3个基本权限位,控制三种访问级别用户的读、写、执行,所以linux的基本权限位一共有9个。基本权限位和另外3个可以影响可执行程序运行的3个特殊权限位一起构成了文件访问模式。三个属性规定了对应三种级别的用户能够如何使用这个文件,这三个基本权限位对于文件和目录的含义有所差别的,我们一起来看一下

字符 权限 对文件的含义 对目录的含义
r 意味着我们可以查看阅读 可以列出目录中的文件列表
w 意味着,对文件可以修改或删除 可以在该目录中创建、删除文件
x 执行 如果是文件就可以运行,比如二进制文件或脚本。 可以使用cd命令进入该目录

那三种访问级别都有哪些呢?每个文件都有三组不同的读、写和执行权限,分别适用于三种访问级别,其中每组中的三个栏位分别使用读取权限(r)、写入权限(w)、执行权限(x)或没有相应的权限(-)来表示,共9位来表示。

技术图片

第一组:适用于文件的属主,图中属主的权限是rwx。

第二组:适用于文件的属组,图中属组的权限是r-x。

第三组:使用于其它用户权限位,图中其它用户权限位是r-x。

当有人试图访问一个文件的时候,linux系统会按顺序执行如下步骤:

(1)使用者拥有这个文件吗?如果是,启用用户权限。

(2)用户是组所有者成员吗?如果是,启用组权限

(3)如果以上两个都不是,启用其它人权限

上面我们提到的是第一种表示方法,在linux中还有另外一种表示方法,八进制表示法,我们来看下字母和八进制表示方法的对应关系

字符表示法 八进制表示法 含义
r 4
w 2
x 1 执行

所以上面给出的权限rwxr-xr-x换成数字的表示方式就是755,那权限如何设置呢?

设置和查看

通过前面的学习我们知道,用户分为所有者,所有者组,其他人这三类,而每一类有包含三种基本权限,他们的对应关系是

权限位 含义
属主权限位 用于限制文件或目录的创建者
属组权限位 用于限制文件或目录所属组的成员
其它用户的权限 用于限制既不是属主又不是所属组的能访问该文件或目录的其他人员

当我们使用命令来查看文件或目录时,会看如下内容

[root@localhost ~]# ls -l
总用量 13804
drwxr-xr-x.  2 root root        6 10月 11 06:36 公共
drwxr-xr-x.  2 root root        6 10月 11 06:36 模板
drwxr-xr-x.  2 root root        6 10月 11 06:36 视频
drwxr-xr-x.  2 root root        6 10月 11 06:36 图片
drwxr-xr-x.  2 root root        6 10月 11 06:36 文档
drwxr-xr-x.  2 root root        6 10月 11 06:36 下载
drwxr-xr-x.  2 root root        6 10月 11 06:36 音乐
drwxr-xr-x.  2 root root        6 10月 11 06:36 桌面
-rw-------.  1 root root     1214 10月 11 06:12 anaconda-ks.cfg
-rw-r--r--.  1 root root     1369 10月 11 06:17 initial-setup-ks.cfg

每一行显示一个文件或目录的信息,这些信息包括文件的类型(1位)、文件的权限(9位)、文件的连接数、文件的属主(第3列)、文件的所属组(第4列),大小以及相关时间和文件名。其中Linux 文件的权限标志位九个,分为3 组,分别代表文件拥有者的权限,文件所属用户组的权限和其它用户的权限,现在我们知道文件有三种权限((r)读取、(w)写入和(x)执行)和三种访问级别((u)用户、(g)主要组和(o)其它人)决定文件可以被如何使用。那如何修改?

修改文件权限 chmod

技术图片

-

使用数字的表示方式类似chmod 755 a,执行完成后a这个文件的权限对应就是 -rwxr-xr-x,这是文件权限的两种修改方式,如果你想修改文件的所有者和所有者组需要使用的命令就是chown,chgrp

[root@localhost test]# ll
总用量 0
-rw-r--r-- 1 root root 0 10月 18 01:26 file1
[root@localhost test]# chown oracle file1
[root@localhost test]# ll
总用量 0
-rw-r--r-- 1 oracle root 0 10月 18 01:26 file1
[root@localhost test]# chgrp oracle file1
[root@localhost test]# ll
总用量 0
-rw-r--r-- 1 oracle oracle 0 10月 18 01:26 file1

这里,我们涉及到了三条与权限修改相关的命令

操作 可以执行的用户
chmod Root用户和文件的所有者
chgrp Root用户和文件的所有者(必须是组成员)
chown 只有root用户

以上是三种基本权限 -R

默认权限

每一个新产生的文件都会有一个默认的权限,这个权限是通过系统中的umask来控制的

文件的最大权限是666

目录的权限是777

使用umask查看

欢迎加入交流鹅群 685868549

以上是关于快速读懂linux基本权限的主要内容,如果未能解决你的问题,请参考以下文章

一篇读懂 Linux 用户管理

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

如何快速读懂stm32代码

一文读懂低代码权限,让自主设置权限的能力交给每一位用户

如何快速读懂大型C++程序代码

如何快速读懂别人的项目?