Lunix的奇妙冒险————权限篇

2023-12-29 16:04
文章标签 权限 奇妙 冒险 lunix

本文主要是介绍Lunix的奇妙冒险————权限篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一.什么是权限
  • 二.用户权限和类别。
    • 1.用户
    • 2.角色
    • 3.更换文件角色
  • 三.文件的类别和对应权限
    • 1.文件的类别。
    • 2.文件属性权限
      • 1.权限说明。
      • 2.默认生成文件权限来源
      • 3.更改权限
    • 3.文件的执行与删除
  • 四.不同用户共同在一个目录下的权限。
    • 1.普通用户家目录
    • 2.在同一目录下文件的权限
      • 1.读权限
      • 2.写权限
      • 3.执行权
      • 4.是否可以删除

一.什么是权限

Linux权限是一种用于控制文件和目录访问的机制,它决定了用户对文件和目录的读取、写入和执行权限。Linux权限系统基于文件所有者、所属组和其他用户的身份,分为读取(r)、写入(w)和执行(x)权限。通过设置文件的权限,可以限制用户对文件的访问和操作,从而保护系统的安全性和稳定性。
包括人员权限和文件权限。

二.用户权限和类别。

1.用户

在Linux系统中,用户可以分为以下几类:

1.超级用户(root):拥有系统上所有权限的特殊用户,可以对系统进行完全控制。2.系统用户:用于运行系统服务或进程的特定用户,通常不允许登录系统。3.普通用户:一般系统用户,可以登录系统并执行一定范围的操作,但权限受到一定限制。4.管理员用户:具有某些特定权限,例如可以执行系统管理任务或安装软件的用户。

其中平时我们最常见的用户为超级用户root和普通用户。
超级用户于普通用户可以用su指令进行转换。
在这里插入图片描述

2.角色

在Linux中有三类角色,分别为拥有者(owner)所属组(group)其他人(other)

1.拥有者(owner):指文件或目录的创建者,拥有者对文件或目录有特定的权限控制,包括读取(r)、写入(w)和执行(x)权限。2.所属组(group):指文件或目录所属的用户组,用户组是一组用户的集合,拥有相同的权限。文件或目录的所属组也有特定的权限控制,包括读取(r)、写入(w)和执行(x)权限。3.其他(others):指除拥有者和所属组之外的其他用户,其他用户对文件或目录的访问权限也可以通过设置来控制,包括读取(r)、写入(w)和执行(x)权限。

在Linux系统中,文件首先识别拥有者(owner)的身份。根据文件的拥有者身份,系统会根据其拥有的权限设置来决定文件的访问权限。如果用户是文件的拥有者,系统将首先检查该用户的权限设置,然后再考虑所属组和其他用户的权限设置。因此,文件的拥有者在访问文件时拥有最高的权限。
值得注意的是一旦识别出一类身份,就不会再识别其他的身份了

3.更换文件角色

一个文件第一使用者为拥有者,然后是所属组

drwxr-xr-x 2 root root 4096 Dec 26 22:32 new2.dir

这个文件的拥有者为root,所属组为root
通过chownchgrp指令修改
在这里插入图片描述
这样该目录的拥有者和所属组都被修改了。

三.文件的类别和对应权限

1.文件的类别。

在Linux系统中,文件的类别主要分为以下几种:

1.普通文件(Regular Files):这是最常见的文件类型,包括文本文件、二进制可执行文件等。2.目录文件(Directory Files):用于存储其他文件和目录的文件类型。目录文件中包含了指向其他文件和目录的链接。3.设备文件(Device Files):Linux将设备抽象为文件,设备文件分为块设备文件和字符设备文件,用于访问硬件设备。4.符号链接文件(Symbolic Link Files):也称为软链接,它是指向另一个文件的链接。5.套接字文件(Socket Files):用于进程间通信的特殊文件类型。6.管道文件(Named Pipes):也称为FIFO,用于进程间通信的一种特殊文件类型。

初学者通常接触到的就是1,2类文件。

2.文件属性权限

1.权限说明。

  • 文件的权限通常有三种:

    1. r ,读
    2. w,写
    3. x,可执行
drwxr-xr-x 2 root root 4096 Dec 26 22:32 new2.dir
-rw-r--r-- 1 root root   69 Dec 26 22:20 test.c

这是一个目录文件和普通文件
目录文件:d代表目录,rwx r-x r-x 三三一组分别对应拥有者(owner)所属组(group)其他人(other)
除了第一个字符代表文件类型,其余字符皆反应文件权限,其中owner对应权限最全。
-代表未拥有权限
在这里插入图片描述

2.默认生成文件权限来源

这里引入掩码概念
Linux掩码是一种权限掩码,用于控制文件和目录的访问权限。它由三组三位数字组成,分别表示文件所有者、文件所属组和其他用户的权限。
掩码是一个八进制序列

[root@iZf8zbc41kduw4qa52iammZ ~]# umask
0022

0是表示八进制,后面三位分别对应拥有者(owner)所属组(group)其他人(other)
反过来对应权限九个字符的二进制序列
例如:
rwx对应二进制111,对应八进制7
r-x对应二进制101,对应八进制5

Linux中默认目录文件权限为0777,普通文件0666
再将掩码取反后与默认权限按位与操作便得到了真正权限。

drwxr-xr-x 2 root root 4096 Dec 26 22:32 new2.dir

将该目录文件计算可得:
在这里插入图片描述

-rw-r--r-- 1 root root   69 Dec 26 22:20 test.c

普通文件计算如下:
在这里插入图片描述

3.更改权限

如何更改文件权限呢?我们需要用到chmod指令

  • 修改拥有者权限
# chmod u-x test.c

u +/- 所对应权限
在这里插入图片描述
给拥有者取消了执行权限,注意到test.c的高亮没有了

  • 修改所属组权限
    g +/- 所对应权限
# chmod g+wx test.c

在这里插入图片描述

  • 其他修改权限
    o +/- 所对应权限
# chmod o+wx test.c

在这里插入图片描述
注意修改过程可以批量修改
在这里插入图片描述

  • 一件添加
# chmod a+r test.c

在这里插入图片描述
也可以通过八进制序列添加

# chmod 000 test.c

在这里插入图片描述

3.文件的执行与删除

文件的执行关系指的是用户对文件的执行操作与文件本身的关系。当用户执行一个文件时,操作系统会根据文件的权限和用户的身份来决定是否允许执行。如果用户拥有执行权限,并且文件是可执行文件,那么用户就可以执行该文件。否则,用户将无法执行该文件。

总之,Linux 文件的执行权限和执行关系是指用户对文件是否具有执行操作的权限,以及用户是否能够执行该文件的关系。这些权限和关系对于系统的安全性和文件的可执行性非常重要。

能执行=具有x执行权限+执行者的关系

所以目录默认给定x权限,可以让用户直接访问
当有权限时:
在这里插入图片描述
当无权限时:
在这里插入图片描述
去掉x权限时,作为普通用户无法查看访问

四.不同用户共同在一个目录下的权限。

1.普通用户家目录

  • 一般情况下,普通用户是不能在 /root 目录下创建目录或者进行其他操作的。这是因为 /root 目录是超级用户(root用户)的家目录,普通用户没有权限在这个目录下进行任何操作。只有超级用户(root用户)才有对 /root 目录的完全控制权限。
    在这里插入图片描述

如果普通用户需要在系统中创建目录,他们通常应该在自己的家目录或者其他有相应权限的目录下进行操作。
当然超管无所畏惧
在这里插入图片描述

2.在同一目录下文件的权限

[qiangsir@iZf8zbc41kduw4qa52iammZ tem.dir]$ touch qiangsir.111 qiangsir.222[qiangsir@iZf8zbc41kduw4qa52iammZ tem.dir]$ ll
total 0
-rw-rw-r-- 1 qiangsir qiangsir 0 Dec 29 10:24 qiangsir.111
-rw-rw-r-- 1 qiangsir qiangsir 0 Dec 29 10:24 qiangsir.222
[qiangsir@iZf8zbc41kduw4qa52iammZ tem.dir]$ 
[root@iZf8zbc41kduw4qa52iammZ tem.dir]# touch root.111 root.222
[root@iZf8zbc41kduw4qa52iammZ tem.dir]# ll
total 0
-rw-rw-r-- 1 qiangsir qiangsir 0 Dec 29 10:24 qiangsir.111
-rw-rw-r-- 1 qiangsir qiangsir 0 Dec 29 10:24 qiangsir.222
-rw-r--r-- 1 root     root     0 Dec 29 10:25 root.111
-rw-r--r-- 1 root     root     0 Dec 29 10:25 root.222
[root@iZf8zbc41kduw4qa52iammZ tem.dir]# 

1.读权限

[root@iZf8zbc41kduw4qa52iammZ tem.dir]# echo "hello Linux" > root.111
[root@iZf8zbc41kduw4qa52iammZ tem.dir]# cat root.111
hello Linux

由于other具有r权限且在qiangsir创建的目录下,所以读没有问题
在这里插入图片描述

2.写权限

没有w权限,显然不能动用root的文件

[qiangsir@iZf8zbc41kduw4qa52iammZ tem.dir]$ echo "hehe" >root.111
bash: root.111: Permission denied

给o+w试试

[root@iZf8zbc41kduw4qa52iammZ tem.dir]# chmod o+w root.111
[qiangsir@iZf8zbc41kduw4qa52iammZ tem.dir]$ echo "hehe" > root.111
[qiangsir@iZf8zbc41kduw4qa52iammZ tem.dir]$ cat root.111
hehe

3.执行权

当创建一个可执行文件a.out,默认三种角色都有执行权
在这里插入图片描述

4.是否可以删除

在这里插入图片描述
超管可以删qiangsir的文件
那么qiangsir可以删超管的文件吗?答案是肯定的。
在这里插入图片描述
原因是这是qiangsir 的目录,所以有对文件的生杀大权。

今天的知识就分享到这里,往期精彩:
Linux的奇妙冒险———指令篇第一曲
Linux的奇妙冒险———指令篇第二曲
在这里插入图片描述

这篇关于Lunix的奇妙冒险————权限篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/549943

相关文章

Java研学-RBAC权限控制(八)

九 登录登出 1 登录作用   判断员工是否有权限访问,首先得知道现在操作的人是谁,所以必须先实现登录功能 2 登录流程   ① 提供登录页面,可输入用户名与密码信息,并添加执行登录的按钮。(登录页面不能被拦截)   ② 给按钮绑定点击事件(异步操作,POST请求)   ③ 事件中发送登录请求,使用 AJAX 方式提交。(使用 AJAX 原因:用户体验更好,既可保留用户刚输入的用户名和密码

C语言入门系列:探秘二级指针与多级指针的奇妙世界

文章目录 一,指针的回忆杀1,指针的概念2,指针的声明和赋值3,指针的使用3.1 直接给指针变量赋值3.2 通过*运算符读写指针指向的内存3.2.1 读3.2.2 写 二,二级指针详解1,定义2,示例说明3,二级指针与一级指针、普通变量的关系3.1,与一级指针的关系3.2,与普通变量的关系,示例说明 4,二级指针的常见用途5,二级指针扩展到多级指针 小结 C语言的学习之旅中,二级

文件权限修改为777,php failed to open stream: Permission denied

记录一次在谷歌云上的异常诡异的事件: 环境 centos7.5 nginx php7.0 mysql 问题: 问题一 我用相同的nginx配置,只是修改了nginx root目录。 打开/var/www/html/ 这个目录就报 2018/06/22 04:35:03 [error] 15840#0: *438 FastCGI sent in stderr: “Primary scr

MySQL中的系统变量权限

MySQL的系统变量用于控制服务器的操作。它们可以是全局的(影响整个MySQL服务器实例),也可以是会话的(仅影响当前客户端会话),或者两者兼有。 你可以使用SET语句来动态地改变这些变量的值。例如: 设置全局系统变量的运行时值: 使用set global语句,该语句需要system_VARIABLES_ADMIN权限(或不推荐使用的SUPER权限)。例如: SET GLOBAL max_

删除第三方AAR所请求的权限

1.问题:引了第三方的AAR库要求一些权限,但我APP不需要,我想删除掉,怎么办 答:很简单,只要在添加:http://schemas.android.com/tools 这个工具在manifest文件中,然后在相应的权限上增加:tools:node="remove"即可。 <manifest xmlns:android="http://schemas.android.com/apk/res/a

mysql 如何分配root账号创建数据库的权限

1.mysql 如何分配root账号创建数据库的权限 在 MySQL 中,root 用户通常具有所有的权限,包括创建数据库的权限。但是,如果我们想要为另一个用户分配创建数据库的权限,或者想要限制 root 用户对某个特定数据库或服务器的权限(尽管这在实际操作中并不常见,因为 root 用户通常应该是无限制的),我们需要按照以下步骤进行操作。 这里我将解释如何为一个新的 MySQL 用户分配创建

sudo 权限之危险的 bash 命令

文章目录 @[toc]事出有因干就完事了创建用户配置 sudo 权限sudo 验证使用 bash 命令执行 chmod 命令使用 bash 命令执行删根 事出有因 使用普通用户安装 tidb 时,发现报错了,报错内容如下: ERROR SSHCommand {"host": "172.17.133.182", "port": "22", "cmd": "exp

GitLab 代码下载和提交的权限开放

一、Gitlab 代码权限开放 1、下载权限 项目--->设置--->成员--->填写账号+配开发者权限,这样就有下载代码的权限了。如下图:   2、代码提交权限  在添加了成员后还得给成员开放代码提交的权限, 项目--->设置--->仓库--->Protected Branches--->选择分支master,设置Allowed to push 权限,这样就OK了,如下两图:

修改window进程访问权限

修改访问权限 使用CreateRemoteThread植入DLL时,必须应用程序的权限。 插入的程序每次操作目标进程的虚拟空间,调用CreateRemoteThread 的时候,都先调用OpenProcess打开这个进程,将PROCESS_ALL_ACCESS 标志作为参数传递,得到这个进程最大的访问权限。 所有受限的进程都是操作系统的一部分,普通的应用程序不应该有权去操作OS。要访

linux中用户、群组、权限的形象描述

一、新建用户: #adduser ... 1. 新建一个用户,相当于给这个用户发了一张身份证(账号密码),以后用户可以用这个身份证“刷卡”进入系统。 2. 新建用户的同时,系统会自动给这个用户分一个“房子”,“房子”就是群组。所以当刚刚新建用户之后,每个用户都是住在自己房子里。这个群组是初始群组,也是有效群组。 3. 每个用户生产的东西的所有权默认属于自己,使用权默认