【Linux】Linux权限

本文将会围绕着下面5个问题进行讲解:

  1. 认识Linux下用户的分类
  2. 什么叫做权限
  3. 没有权限会有什么现象
  4. 如何进行权限的修改
  5. 其他与权限相关的问题

好了,本章内容就要开始了,准备你的大脑,开凿吧!!!


认识Linux下用户的分类

root用户:超级用户

普通用户:自己新建的用户

二者的差别:root用户基本不受权限的约束,普通用户是受权限约束的。

问:这俩个用户之间是如何切换的?

        Linux中所有的用户都要有密码,无论是root还是其他,即使多个普通用户,也都要设置密码。这里建议root账号的密码和其他普通用户的密码不同。

  • 普通用户切换到超级用户

su:切换到root账号,输入root密码

exit:回退到普通用户

Ctrl + D:回退到普通用户

su - :切换到root账号,输入root密码

  • root用户切换到普通用户

su 用户名:切换到普通用户,不用输入用户密码

exit:回退到普通用户

  • 普通用户切换到普通用户

su 普通用户:切换到普通用户,需要输入对应密码

Ctrl+D / exit :退回

如何只对一条指令进行提权?

        如果我们想暂时的对一条命名进行提权,可以输入指令:sudo command,这样就可以将sudo后面的指令切换成root指令了。

【注意】目前使用adduser新建的用户,没有执行sudo的能力,系统不信任你,除非未来将普通用户添加到系统信任白名单中——即诚信用户才可提高权限。

权限是什么

一件事情是否允许被你做——你的权限。

  • 权限认证的是身份,权限是和人有关系的。

即一家公司是否允许被进入,需要证明是否是这家公司的员工;或者说如果你是视频VIP会员,你将被允许看VIP视频。这就是权限,与你这个人以及身份有关。

  • 权限也和事物的“属性”有关

即你的身份是可以进入篮球场的进行观看的,但是你在篮球场却干起了炒菜,这就和球场的属性不同了。就以文件为例子,文件的属性是可读的、可写的、可以被执行的。

下面我们就看看不同用户在不同的文件上的权限?

每一个文件的属性详情的左侧都有着十个字符,下面我们来一一分解:

第一个字符——文件的类名

在Linux系统中,文件名后缀没有直接的意义,当然,这里的没有意义不代表可以没有用处,就比如说gcc,gcc是一款编译器,软件,这款软件在编译的时候会识别是否是.c或者.cpp后缀的文本文件。也就是说,不代表其他Linux系统上运行的其他软件不需要后缀。

  • - : 普通文件——文本、可执行程序、库基本都属于是普通文件。
  • d:目录文件
  • b:块设备文件——磁盘文件
  • c:字符设备文件——键盘、显示器文件
  • p:管道文件——用来进行通信的

... ...

在Linux中如何看待后缀:看用户需求。

后九个字符——文件的权限属性

在后面九个字符中,可以发现都是由四个字符组成:

  • r:可读
  • w:可写
  • x:可执行
  • -:对应的权限位置是没有权限的。

在Linux中,“人”是如何理解的?

人可以分成:具体的用户与角色,角色或者说是一种权限身份。(就比如说教师办公室,你的身份是老师,同时你的权限身份是允许进入的人)

在Linux中,具体的用户分为俩种:root用户和普通用户

在Linux中,角色或者权限身份分为三种:拥有者、所属者、其他人

那么,角色和具体的用户是什么关系呢?

那么后面九个字符是如何归类的?

以test.c文件中的所属者rw-为例子

r 有读权限,w 有写权限, - 没有执行权限

  1. 位置的含义是确定的,
  2. 每一个位置只有是或者不是,具有指定的权限。

文件的类型

那么其他人(other)呢?

用户进行判断是否是拥有者和所属者,如果二者都不是,就是other

三种权限的存在和不存在是什么现象

指令chmod

功能:设置文件的访问权限

格式:chmod [参数] 权限 文件名

常用选项:

  • R -> 递归修改目录文件的权限
  • 说明:只有文件的拥有者和root才可以改变文件的权限

chmod命令权限值的格式:

1.用户表示符 +/-/= 权限字符

  • +:向权限范围增加权限代号所代表的权限
  • -:向权限范围取消权限代号所代表的权限
  • =:向权限范围赋予权限代号所代表的权限
  • 用户符合
  • u:拥有者
  • g:所属者
  • o:其他用户
  • a:所有用户

2.三位8进制的数字

就以test.c文件为例子,看看权限的现象。

这里基本就能明确,u(user)、g(group)、o(other)通过+\-来设置权限。

权限的更改

权限属性的更改

权限属性的更改方式有俩种:以用户表示符 +/-/= 权限字符设置,另一种是以八进制形式设置。

下面简单演示一下俩种形式的设置。

第一种:

u+w:代表拥有者+可写权限

第二种:

如果说1代表权限允许,0代表权限不允许,那么在拥有者的权限设置为111就是全都允许,把111设置成8进制就是7。

那么776就是111 110 110.

权限拥有者的更改

chown指令

功能:修改文件的拥有者

格式:chown [参数] 用户名 文件名

chgrp指令

功能:修改文件或目录的所属组

格式:chgrp [参数] 用户组名 文件名

常用选项:-R 递归修改文件或目录的所属组

将拥有者设置成abai 

将所属者设置成abai 

将拥有者和所属者设置成dabai

【注意】必须切换到root账号才能进行设置。在进行认证的时候,只能选择其中一个角色进行权限判定(类似于if\else)

其他问题

问题一:起始权限

子问题一:为什么我们创建文件的默认权限是我们看到的固定样式?

子问题二:为什么普通文件的八进制是664

子问题三:为什么目录文件的八进制是775

操作系统默认给普通文件的起始权限其实是666,给目录的起始权限是777.

指令umask

功能:查看或者修改文件掩码

格式:umask权限值

说明:将现有的存取权限减去权限掩码后,即可产生文件时预设权限。超级用户默认掩码值时0022,普通用户默认为0002.

umask时权限掩码:凡是在umask中出现的权限不会在最终的文件权限中出现。

虽然新建文件夹默认权限是0666,新建目录默认文件权限是0777,但是实际上所创建的文件和目录,看到的权限往往不是上面的这个值。原因就是创建文件或目录的时候,还要受到umask的影响。假设默认权限是mask,则实际创建处理的文件权限是:mask & (~umask)

问题二:目录权限

  • -r:读权限不会影响进入目录,但是不允许查看文件下面的内容
  • -w:写权限不允许在目录传教,更改,“删除”
  • -x:是否允许用户进入对应目录

问题三:共享目录

  1. 普通用户自己的家目录权限是700,也就是说我在我们家目录下面创建的文件别人是看不到的。
  2. 有时候,我们多个用户想进行文件数据之间的共享,我们所建立的共享文件,不能在任何一个人的家目录下面。
  3. 一个文件能否被删除,并不由文件本身决定,由这个文件所处的目录决定。
  4. 如果我们去掉了共享目录的权限,我们也同时无法创建文件了,共享目录的价值就无法体现。
  5. 粘滞位

粘滞位:给目录设置,一般是共享文件,大家可以进行在目录中进行各自文件的增删改查

【注意】只允许文件的拥有者/root删除此文件,其他人不允许;t是特殊的x权限。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1787.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu系统如何实现键盘按键映射到其他按键(以 Ctrl+c 映射到 F3,Ctrl+v 映射到 F4 为例)

文章目录 写在前面1. 功能描述2. 实现步骤2.1 安装AutoKey2.2 软件设置2.2.1 软件设置 2.3 测试是否安装成功 参考链接 写在前面 自己的测试环境: Ubuntu20.04 1. 功能描述 Ubuntu系统使用Ctrlc 、Ctrlv 进行复制粘贴操作的时候,时间长了就会出现小拇指…

threejs开源实例-粒子地球

源码 three.js webgl - geometry - cube <script type"module">import * as THREE from "three";import { OrbitControls } from "three/addons/controls/OrbitControls.js";import { GUI } from "three/addons/libs/lil-gui.modul…

苍穹外卖的vue开发

前端的环境搭建 技术选型 熟悉目录结构 如何梳理代码 以登录功能进行示例 先看前端页面 这个路径一定是对应了一个对应的路由,这个路由一定对应了某个组件 找到登录的方法 这个方法在store中,是异步方法 store中有一个actions方法 对应的是login的api请求 request是我们单独…

docker desktop使用ubuntu18.04带图形化+运行qemu

记录一下docker desktop使用ubuntu18.04带图形化命令和使用步骤 1. 下载镜像 参考&#xff1a;【Docker教程】Docker部署Ubuntu18.04(带图形化界面) 命令&#xff1a; docker pull kasmweb/ubuntu-bionic-desktop:1.10.02. 启动镜像 命令&#xff1a; docker run -d -it …

springboot入门学习笔记2(连接mysql,使用mybatis,plus等)

对于application.yml的学习 application.yml 是 Spring Boot 的核心配置文件&#xff0c;用于定义应用程序的配置属性。 它允许开发者通过 YAML 格式配置各种属性&#xff0c;如服务器端口、数据库连接、第三方服务端点等。 这些属性通过 Spring 的 ConfigurationProperties…

5G基础知识

那个工种&#xff1f; FDD 频分双工&#xff08;Frequency Division Duplexing&#xff09;&#xff0c;理解起来很简单&#xff0c;就是把上行和下行业务隔离在两个频段&#xff0c;互不干扰。 而 TDD 时分双工&#xff08;Time-Division Duplexing&#xff09;&#xff0c;是…

大数据治理:策略、技术与挑战

随着信息技术的飞速发展&#xff0c;大数据已经成为现代企业运营和决策的重要基础。然而&#xff0c;大数据的复杂性、多样性和规模性给数据管理带来了前所未有的挑战。因此&#xff0c;大数据治理应运而生&#xff0c;成为确保数据质量、合规性、安全性和可用性的关键手段。本…

022集——统计多条线的总长度(CAD—C#二次开发入门)

如下图所示&#xff0c;选择多条线并统计长度&#xff1a; c#中不包含直接获取curve曲线长度 属性&#xff0c;需用如下方法&#xff1a;curve.GetDistanceAtParameter(item.EndParam) 附部分代码如下&#xff1a; using Autodesk.AutoCAD.ApplicationServices; using Autode…

WPF+MVVM案例实战(十四)- 封装一个自定义消息弹窗控件(下)

文章目录 1、案例效果2、弹窗控件使用1.引入用户控件2、按钮命令实现 3、总结4、源代码获取 1、案例效果 2、弹窗控件使用 1.引入用户控件 打开 Wpf_Examples 项目&#xff0c;在引用中添加用户控件库&#xff0c;在 MainWindow.xaml 界面引用控件库&#xff0c;代码如下&…

2024年计算机视觉与图像处理国际学术会议 (CVIP 2024)

目录 大会简介 主办单位&#xff0c;协办单位 组委会 主讲嘉宾 征稿主题 参会方式 会议议程 重要信息 会议官网&#xff1a;iccvip.org 大会时间&#xff1a;2024年11月15日-17日 大会地点&#xff1a;中国 杭州 大会简介 2024年计算机视觉与图像处理国际学术会议(C…

硅谷甄选(8)spu

Spu模块 SPU(Standard Product Unit)&#xff1a;标准化产品单元。是商品信息聚合的最小单位&#xff0c;是一组可复用、易检索的标准化信息的集合&#xff0c;该集合描述了一个产品的特性。通俗点讲&#xff0c;属性值、特性相同的商品就可以称为一个SPU。 7.1 Spu模块的静态…

【element el-date-picker限制时间选择范围】

问题场景 在一次项目中,有一个这样的需求就是填报时间需要在上一次提交信息之后,在限制时间时发现,el-date-picker中的pickerOption中的disableDate是基于日期限制的,若限制日期为今日凌晨,那么今天之后的日期都不能填 <el-date-pickerv-model="selectedDateTime&…

我也谈AI

“随着人工智能技术的不断发展&#xff0c;我们已经看到了它在各行业带来的巨大变革。在医疗行业中&#xff0c;人工智能技术正在被应用于病例诊断、药物研发等方面&#xff0c;为医学研究和临床治疗提供了新的思路和方法&#xff1b;在企业中&#xff0c;人工智能技术可以通过…

机器人对人工智能未来发展的影响

机器人作为人工智能&#xff08;AI&#xff09;技术的一个重要应用领域&#xff0c;对人工智能的未来发展具有深远的影响。机器人和人工智能在技术上存在深度的交叉和融合。人工智能为机器人提供了强大的感知、决策和执行能力&#xff0c;而机器人则成为人工智能技术的最佳载体…

大数据-199 数据挖掘 机器学习理论 - 决策树 模型 决策与条件 香农熵计算

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

ES入门:查询和聚合

安装完ElasticSearch 和 Kibana后我们开始学习 为了方便测试&#xff0c;使用kibana的dev tool来进行学习测试&#xff1a; 测试工具 从索引文档开始 插入 向 Elasticsearch 索引 customer 的 _doc 类型的文档 id 为 1 的文档发送 PUT 请求的例子。 请求体为 JSON 格式&am…

力扣——二叉树的后序遍历(C语言)

1.题目&#xff1a; 给你一棵二叉树的根节点 root &#xff0c;返回其节点值的后序遍历。 2.原理&#xff1a; 这里的遍历&#xff0c;是要存入到数组中&#xff0c;所以需要建立数组&#xff0c;这里传参有*returnSize&#xff0c;需要求节点个数&#xff0c;可以调用前面Tr…

软件测试学习笔记丨Flask操作数据库-数据库和表的管理

本文转自测试人社区&#xff0c;原文链接&#xff1a;https://ceshiren.com/t/topic/23427 结构分析 Runner是中间件sqlachemy去驱动Runner&#xff0c;根据不同的数据库去驱动不同的中间件 demo # 导入Flask的类 from flask import Flask # 实例化 Flask的类&#xff0c;并且…

一个小程序如何对接多个收款账户?

背景 我又来了&#xff0c;之前对接过网约巴士系统 网约巴士旅游专线平台搭建历程&#xff0c;运营了两年多了。在运营中完善、在完善中学习&#xff0c;一直是不变的真理。有一句话说得好&#xff1a;先做一个垃圾、用起来再说。 今天又需要升级了&#xff0c;需求是&#…

模型 定位地图

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。心智导航现实的空间图。 1 定位地图模型的应用 1.1 小玉的职业定位与发展规划 小玉&#xff0c;24岁&#xff0c;市场营销专业本科毕业生&#xff0c;有半年汽车销售实习经历。毕业后&#xff0c;她…