当前位置: 首页 > news >正文

[Linux]:权限

img

✨✨ 欢迎大家来到贝蒂大讲堂✨✨

🎈🎈养成好习惯,先赞后看哦~🎈🎈

所属专栏:Linux学习

贝蒂的主页:Betty’s blog

1. Linux权限的基本概念

1.1 root与普通用户

Linux系统中,存在两种主要用户类型,即超级用户root与普通用户。超级用户拥有极高的权限,可以在 Linux 统下执行几乎任何操作,其权限几乎不受限制。相比之下,普通用户通常只能在自己的工作目录/home/xxx内进行工作,并且在整个系统上所能进行的操作也较为有限。 换句话说,Linux系统中的权限概念主要是为了对普通用户的行为进行限制,以确保系统的安全性和稳定性。而超级用户由于其强大的权限,在使用时需要格外谨慎,以免误操作对系统造成严重破坏。 在命令提示符方面,超级用户的提示符为#,普通用户的提示符为$。这一区别可以帮助用户在使用命令行时快速区分自己当前所使用的用户身份,从而更好地掌握自己的操作权限范围。

1.2 创建与删除普通用户

实际上,使用root账号是比较危险的,因为root账号的权限太大,可能会因为误操作而造成不可挽回的结果,所以我们最好创建一个普通用户的账号平时使用。接下来我们就来谈一谈如何创建一个普通账户:

  1. 首先在root用户下,输入指令<font style="color:rgb(77, 77, 77);">addser yourid</font>,其中<font style="color:rgb(77, 77, 77);">yourid</font>是你自己创建的用户名。

  1. 然后输入指令passwd yourid来设置你的密码。(其中输入密码并不会显示)

  1. 最后再次确认密码,密码设置就成功。

在知道如何创建新用户之后,我们可以通过我们创建的用户名与密码登录普通用户。

然后我们再来谈谈如何删除用户:

直接在root用户下,输入指令userdel -r yourid,即可删除。

1.3 普通用户与root的切换

虽然我们平时使用的是普通用户,但是偶尔有些指令就需要在root用户下执行。所以这时候就需要我们切换用户。

如果从普通用户切换为root用户,可以使用两种指令:su(su root)su-。其中第一个指令,仅仅是一个用户身份的切换,用户所处的路径不发生改变。而第二个指令则会更改为家目录/root下,其实就是su -就相当于重新登录。

如果是从root用户切换到普通用户,直接输入指令 su user

切换用户后,若想切回上次的用户,可按Ctrl+d实现,也可以输入指令exit

但是有时候我们并不知道root用户的密码,但是又需要root用户去执行某条指令,那么这时就需要输入指令sudo 指令,这条指令就可以提升我们要执行指令的权限,即让root用户执行。但是使用这个指令有一个条件就是root用户将此普通用户添加到可信任白名单中。

如果要将某个用户添加进入可信任白名单中,首先在root用户下,通过指令vim /etc/sudoers对应文件。

然后我们就可以使用sudo 指令来提升指令时的权限。

2. Linux权限管理

2.1 用户划分

Linux中,为了方便管理文件,还对我们的用户或者文件访问者进行了分类:

文件和文件目录的拥有者:u—User
文件和文件目录的所属组:g—Group
其它用户(即不是这个文件的拥有者):o—Others

因为other可能存在多个,所以除了文件拥有者和文件所属组之外的都叫other

2.2 文件类型与访问权限

首先是文件类型,在Linux下,可以分为以下几种文件。

  1. -:普通文件(指不包含有文件系统信息的结构信息的文件,是用户所接触到的文件,比如常见的.exe.c.txt,归档文件等在Linux中统称为普通文件)。
  2. d:目录(文件夹)。
  3. l:软链接(类似Windows的快捷方式)文件。
  4. b:块设备文件(例如硬盘、光驱等)。
  5. p:管道文件。
  6. c:字符设备文件(例如屏幕等串口设备)。
  7. s:套接字文件。

然后文件的访问权限也可以分为:可读®、可写(w)可执行(x)

如果仔细观察就可以发现,其一共有十个字符,除开第一个代表文件的类型外,后九个每三个为一组,分别代表拥有者,所属组,其他用户的可读,可写,可执行的权限。

字符表示法说明
r - -仅可读
- w -仅可写
- - x仅可执行
r w -可读可写
r - x可读可执行
- w x可写可执行
r w x可读可写可执行
- - -无权限

其实除了这种表示方法之外还有一种表示方法那就是**八进制表示法,**如下图:

字符表示法二进制八进制数值表示法说明
r - -1004仅可读
- w -0102仅可写
- - x0011仅可执行
r w -1106可读可写
r - x1015可读可执行
- w x0113可写可执行
r w x1117可读可写可执行
- - -0000无权限

2.3 权限的设置

在了解权限的分类之后,我们接下来学习如何更改文件的访问权限:

  1. 语法: chmod 选项 权限 文件名或目录名
  2. 功能: 设置文件的访问权限。
  3. 常用选项: -R 递归修改目录文件的权限。

1. 方法一: 用户符号 +/-/= 权限字符

+ :向权限范围增加权限代号所表示的权限。
- :向权限范围取消权限代号所表示的权限。
= :向权限范围赋予权限代号所表示的权限。

● 用户符号:u:拥有者。g:所属组。o:other。a:所有用户。

值得注意的是:如果相同时改变不同种类用户的访问权限,中间需要用逗号隔开。

  1. 方法二: 八进制数字

接下来我们来讨论如何更改文件的拥有者。

  1. 语法: chown 选项 用户名 文件名或目录名
  2. 功能: 修改文件的拥有者。
  3. 常用选项: -R递归修改目录文件的拥有者。

然我们也可以通过以下命令改变文件所属组。

  1. 语法:chgrp 选项 用户名 文件名或目录名
  2. 功能: 修改文件的所属组。
  3. 常用选项: -R 递归修改目录文件的所属组。

其实我们可以使用chown指令同时改变拥有者与所属组,中间用冒号隔开即可。

当然以上指令都需要在root用户下执行。

2.4 文件掩码

实际上,新建文件的默认权限为0666(rw- rw- rw-),新建目录的默认权限为0777(rwx rwx rwx),其中第一位与特殊权限相关,这里我们不需要深究。但是实际上新建文件与目录的默认权限并不如上所说,这是怎么回事呢?

其实这种情况就与我们的文件掩码umask有关,我们设默认权限为mask,实际创建出的文件或目录权限为mask&umask

我们可以通过这个指令umask 八进制数来修改默认的掩码umask

其中需要注意的是:root用户的默认掩码为0022,而普通用户为0002

2.5 权限的作用

对于普通文件来说,可读,可写,可执行这种字面含义就能帮助我们理解其权限的作用,但是对于目录来说,就有所区别了。

  1. 可读权限: 如果用户没有该目录的可读权限,则无法通过ls指令查看目录中的文件内容。
  2. 可写权限: 如果用户没有该目录的可写权限,则无法通过一系列指令在目录中创建文件或删除文件。
  3. 可执行权限: 如果用户没有该目录的可执行权限,则无法通过cd指令进入到目录当中。

但是这种情况就会导致一个非常严重的问题,那就是:拥有可读权限的人可以删除文件,这是不可取的,因为这个文件不一定是你创建的,你不可能去删除别人的文件。

所以了为了解决这个问题就引入了粘滞位的概念。

2.6. 粘滞位

为目录添加粘滞位特别简单只需要输入指令chmod+t 目录名

img

在为目录添加了粘滞位之后,该目录文件就只能由:root用户删除,该目录或文件的拥有者删除。

相关文章:

[Linux]:权限

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;Linux学习 贝蒂的主页&#xff1a;Betty’s blog 1. Linux权限的基本概念 1.1 root与普通用户 在Linux系统中&#xff0c;存在…...

启动Spring Boot报错

一、遇到的问题 启动Spring Boot报错 Unable to close ApplicationContext org.springframework.boot.SpringApplication: Application run failed java.lang.IllegalStateException: Error processing condition on org.springframework.boot.autoconfigure.cache.CacheAutoCo…...

部署project_exam_system项目——及容器的编排

&#xff08;一&#xff09;安装docker、编辑daemon.json文件、安装docker-compose编排容器、启动docker 1.环境准备 [rootdocker--1 ~]# rz -Erz waiting to receive.[rootdocker--1 ~]# lsanaconda-ks.cfg docker.sh[rootdocker--1 ~]# source docker.sh [rootdocker--1 ~…...

网络工程师学习笔记——无线通信网

移动通信 从1G到3G都是针对语音通话设计的&#xff0c;只有4&#xff27;才可以与Internet衔接 1978年美国贝尔实验室开发了高级移动电话系统&#xff08;AMPS&#xff09;&#xff0c;可以随时随地的进行通信&#xff0c;采用蜂窝技术解决了公用通信系统所面临的大容量要求和…...

Vue(十三) 路由、路由嵌套、query、param传参、propos、replace属性。编程式路由导航,特有的生命周期函数,路由守卫

文章目录 路由1. 基本使用2. 多级(嵌套)路由3. 路由query传参4. 命名路由5. 路由param传参6. propos属性7. replace属性8. 编程式路由导航9. 缓存路由组件10. actived&#xff0c;deactived生命周期函数11. 路由守卫1、全局路由2、独享路由3、组件内路由守卫 12. 路由器工作的两…...

ArgoUML与StarUML的安装

ArgoUML与StarUML的安装 说明&#xff1a; 首次发表日期&#xff1a;2024-09-07ArgoUML 官网&#xff1a; https://argouml-tigris-org.github.io/tigris/argouml/StarUML 官网&#xff1a; https://staruml.io/ ArgoUML 以下内容基于&#xff1a; https://blog.csdn.net/h…...

828华为云征文|华为云服务器Flexus X搭建悟空crm管理系统——助力企业云上管理(解决APP Referer校验失败问题)

1、为什么我们企业会选择Flexus云服务器X实例来部署自己的CRM管理系统&#xff1f; 因为基于华为云Flexus X实例搭建CRM管理平台&#xff0c;可以从容面对企业内部瞬息万变的业务压力变化 2、华为云服务器Flexus X方案及优势&#xff1a; 灵活伸缩 搭配弹性伸缩服务AS及负载均…...

计算机毕业设计选题推荐-健康健身追踪系统-运动健身系统-Java/Python项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…...

FPGA开发:初识FPGA × 开发环境

FPGA是什么&#xff1f; FPGA的全称是现场可编程门阵列&#xff08;Field Programmable Gate Array&#xff09;&#xff0c;一种以数字电路为主的集成芯片&#xff0c;属于可编程逻辑器件PLD的一种。简单来说&#xff0c;就是能用代码编程&#xff0c;直接修改FPGA芯片中数字…...

电脑驱动分类

电脑驱动程序&#xff08;驱动程序&#xff09;是操作系统与硬件设备之间的桥梁&#xff0c;用于使操作系统能够识别并与硬件设备进行通信。以下是常见的驱动分类&#xff1a; 1. 设备驱动程序 显示驱动程序&#xff1a;控制显卡和显示器的显示功能&#xff0c;负责图形渲染和…...

理解C++全局对象析构顺序与 IPC 资源管理:避免 coredump

文章目录 0. 概述1. 问题背景2. 问题分析3. 解决方案&#xff1a;手动释放资源4. 深入剖析&#xff1a;为什么手动调用 reset() 有效&#xff1f;5. 延伸思考&#xff1a;如何避免全局对象带来的问题&#xff1f;6. 总结 0. 概述 在编写 C 程序时&#xff0c;使用全局或静态对…...

云计算之大数据(下)

目录 一、Hologres 1.1 产品定义 1.2 产品架构 1.3 Hologres基本概念 1.4 最佳实践 - Hologres分区表 1.5 最佳实践 - 分区字段设置 1.6 最佳实践 - 设置字段类型 1.7 最佳实践 - 存储属性设置 1.8 最佳实践 - 分布键设置 1.9 最佳实践 - 聚簇键设置 1.10 最佳实践 -…...

硬件工程师笔试面试知识器件篇——二极管

目录 4、二极管 4.1、基础 二极管原理图 二极管实物图 4.1.1、基本特性 4.1.2、常见类型 4.1.3、工作原理 4.1.4、应用领域 4.2、相关问题 4.2.1、二极管的PN结是如何形成的? 4.2.2、发光二极管(LED)的工作原理是什么? 4.2.3、在电子电路中,二极管通常如何应用?…...

操作系统安全保护

操作系统安全概述 概念&#xff1a;满足安全策略要求&#xff0c;具有响应安全机制及安全功符合特定安全标准&#xff0c;在一定约束条件下 能抵御常见网络安全威胁&#xff0c;保障自身安全运行及资源安全 安全等级&#xff1a;根据安全功能和安全保障要求分为 用户自主保护…...

STM32硬件篇:W25Q64

W25Q64简介 W25Qxx系列是一种低成本、小型化、使用简单&#xff08;使用SPI通信协议&#xff09;的非易失性&#xff08;掉电不丢失&#xff09;存储器&#xff0c;常用于数据存储、字库存储、固件程序存储等场景。 【注意】W25Qxx芯片只支持SPI的模式0和模式3。 存储介质&am…...

uni-app 获取当前位置的经纬度以及地址信息

文章目录 uni.getLocation(objc)获取经纬度和地址调试结果问题 uni-app 获取当前位置的经纬度以及地址信息 uni.getLocation(objc) uni-app官方文档定位API: uni.getLocation(OBJECT) uni.getLocation({type: wgs84,success: function (res) {console.log(当前位置的经度&…...

【CSS】尺寸单位

在 CSS 中&#xff0c;常见的尺寸单位有以下几种&#xff1a; 像素&#xff08;px&#xff09;&#xff1a; 这是最常用的绝对单位。例如 width: 200px; 表示宽度为 200 像素。像素是固定的尺寸&#xff0c;不会随着屏幕分辨率或设备的不同而变化。 备注&#xff1a; 在不同的…...

Agent(智能体)和 MetaGPT,一句话实现整个需求应用代码

前面 2 篇文章&#xff0c;我们使用文生文、文生图和文生音频三个大模型共同实现了图文并茂的儿童绘本故事和绘本故事音频需求&#xff1a; 第一篇 根据主题生成儿童绘本故事&#xff1a;GLM-4-Flash 大模型 API 免费了&#xff0c;手把手构建“儿童绘本”应用实战&#xff08…...

[数据结构] 哈希结构的哈希冲突解决哈希冲突

标题&#xff1a;[C] 哈希结构的哈希冲突 && 解决哈希冲突 水墨不写bug 目录 一、引言 1.哈希 2.哈希冲突 3.哈希函数 二、解决哈希冲突 1.闭散列 I&#xff0c;线性探测 II&#xff0c;二次探测 2.开散列 正文开始&#xff1a; 一、引言 哈希表是一种非常实用而…...

Wimdows使用Appium IOS自动化

启动appium服务器&#xff1a; appium -a 127.0.0.1 -p 4724 配置 { "platformName": "iOS", "appium:platformVersion": "16.5.1", "appium:deviceName": "(★StatTrak™) |午夜黑&#xff08;崭新出厂&#…...

TRAE SOLO模式实战:如何用AI上下文工程师5分钟搞定JWT登录接口开发

TRAE SOLO模式实战&#xff1a;5分钟构建JWT登录接口的AI开发革命 清晨的阳光透过百叶窗洒在键盘上&#xff0c;咖啡杯里升起最后一缕热气。作为一名全栈开发者&#xff0c;你刚收到产品经理的紧急需求&#xff1a;"今天下班前上线用户登录功能&#xff0c;支持邮箱密码验…...

Apache NiFi数据质量管理的终极指南:如何构建强大的验证规则与异常检测系统

Apache NiFi数据质量管理的终极指南&#xff1a;如何构建强大的验证规则与异常检测系统 【免费下载链接】nifi Apache NiFi 项目地址: https://gitcode.com/gh_mirrors/ni/nifi Apache NiFi是一个强大的数据流自动化平台&#xff0c;专门用于数据集成和数据流管理。在当…...

医疗AI推理可视化卡顿难题(实时渲染延迟>120ms?)——三甲医院PACS系统C++底层优化全链路拆解

第一章&#xff1a;医疗AI推理可视化卡顿难题的临床影响与性能基线定义在放射科、病理科及急诊超声等实时决策场景中&#xff0c;AI模型输出热力图、分割掩码或病灶定位框后&#xff0c;若前端渲染延迟超过300ms&#xff0c;将直接干扰医师对动态影像序列&#xff08;如心脏搏动…...

SEO_ 详解SEO优化中内容与外部链接的建设策略

SEO优化中内容与外部链接的建设策略 在当前互联网营销领域&#xff0c;SEO优化&#xff08;搜索引擎优化&#xff09;是提升网站流量和品牌知名度的关键手段。其中&#xff0c;内容与外部链接的建设策略是两大核心要素。本文将详解SEO优化中内容与外部链接的建设策略&#xff…...

成为数据科学家之路,第一部分:数学

原文&#xff1a;towardsdatascience.com/roadmap-to-becoming-a-data-scientist-part-1-maths-2dc9beb69b27 https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/492ae0fb35397ff6690bc9518f937530.png 简介 数据科学无疑是当今最迷人的领域…...

电力系统稳定器与静态无功补偿器联合提升暂态稳定性Simulink仿真模型研究

使用电力系统稳定器&#xff08;PSS&#xff09;和静态无功补偿器&#xff08;SVC&#xff09;提高暂态稳定性的simulink仿真模型电力系统这玩意儿最怕的就是突然来个大扰动&#xff0c;比如短路故障或者大负荷切换。这时候发电机的功角曲线要是收不住&#xff0c;分分钟全网停…...

OpenClaw技能开发入门:为千问3.5-9B编写自定义文件处理器

OpenClaw技能开发入门&#xff1a;为千问3.5-9B编写自定义文件处理器 1. 为什么需要自定义文件处理器 上周我在整理项目文档时&#xff0c;发现一个重复性痛点&#xff1a;每次收到同事发来的Markdown文件&#xff0c;都需要手动执行"格式校验→重命名→按日期归档→生成…...

Ostrakon-VL-8B对比评测:主流开源多模态模型在餐饮场景的较量

Ostrakon-VL-8B对比评测&#xff1a;主流开源多模态模型在餐饮场景的较量 最近在餐饮和零售行业&#xff0c;用AI来“看懂”图片的需求越来越多了。比如&#xff0c;自动识别菜品、分析菜单、甚至根据顾客拍的模糊照片推荐相似菜品。这背后&#xff0c;多模态模型是关键。 市…...

Goldfish4Tech空气泵驱动库:嵌入式直流泵安全控制方案

1. Goldfish4Tech空气泵驱动库技术解析1.1 库定位与工程价值Goldfish4TechAirPump 是一款面向嵌入式平台的轻量级空气泵控制库&#xff0c;专为金鱼科技&#xff08;Goldfish4Tech&#xff09;系列微型直流空气泵设计。该库并非通用型电机驱动框架&#xff0c;而是针对特定硬件…...

植物基肉类替代品市场的增长与投资机会

植物基肉类替代品市场的增长与投资机会 关键词:植物基肉类替代品、市场增长、投资机会、消费趋势、行业发展 摘要:本文聚焦于植物基肉类替代品市场,深入分析其市场增长的驱动因素、现状及未来趋势,同时探讨了该领域蕴含的投资机会。通过对核心概念的阐释、相关算法原理的介…...