[Linux]:权限

news2024/12/22 20:25:40

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. 方法一: 用户符号 +/-/= 权限字符
  1. <font style="color:rgb(77, 77, 77);">+</font>:向权限范围增加权限代号所表示的权限。
  2. <font style="color:rgb(77, 77, 77);">-</font>:向权限范围取消权限代号所表示的权限。
  3. <font style="color:rgb(77, 77, 77);">=</font>:向权限范围赋予权限代号所表示的权限。
  • **用户符号:**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用户删除,该目录或文件的拥有者删除。

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

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

相关文章

内部知识库:企业智慧资产的安全守护者

引言 在知识经济时代&#xff0c;企业的核心竞争力越来越依赖于其知识资源的积累、管理和利用。内部知识库&#xff0c;作为企业知识管理的重要组成部分&#xff0c;扮演着智慧资产守护者的关键角色。它不仅承载着企业多年来的经验积累、技术创新和业务流程知识&#xff0c;还…

2024年“羊城杯”粤港澳大湾区网络安全大赛 初赛 Web数据安全AI 题解WriteUp

文章首发于【先知社区】&#xff1a;https://xz.aliyun.com/t/15442 Lyrics For You 题目描述&#xff1a;I have wrote some lyrics for you… 开题。 看一下前端源码&#xff0c;猜测有路径穿越漏洞 http://139.155.126.78:35502/lyrics?lyrics../../../../../etc/passw…

中国同一带一路沿线国海关货物进出口额表(年)1994-2022进出口总额进口总额出口总额

数据来源&#xff1a;基于相关&#xff08;证券、货币、期货等&#xff09;交易所、各部委、省、市、区县统计NJ、或各地区公布的数据&#xff08;若是全球各国数据&#xff0c;主要来源于世界银行世界发展指标WDI、或联合国统计数据&#xff09; 数据范围&#xff1a;&#x…

安装Android Studio及第一个Android工程可能遇到的问题

Android Studio版本众多&#xff0c;电脑操作系统、电脑型号、电脑硬件也是多种多样&#xff0c;幸运的半个小时内可以完成安装&#xff0c;碰到不兼容的电脑&#xff0c;一天甚至更长时间都无法安装成功。 Android安装及第一个Android工程分为4个步骤&#xff0c;为什么放到一…

E31.【C语言】练习:指针运算习题集(上)

Exercise 1 求下列代码的运行结果 #include <stdio.h> int main() {int a[5] { 1, 2, 3, 4, 5 };int* ptr (int*)(&a 1);printf("%d",*(ptr - 1));return 0; } 答案速查: 分析&#xff1a; Exercise 2 求下列代码的运行结果 //在x86环境下 //假设结…

使用Ansible stat模块检查目录是否存在

使用Ansible stat模块检查目录是否存在或者是否为一个目录还是文件 理论知识 在Ansible中&#xff0c;你可以使用stat模块来检查一个目录是否存在。stat模块可以用来获取文件或目录的状态信息&#xff0c;包括它是否存在。下面是一个简单的例子&#xff0c;说明如何使用stat模…

9/3作业

一、继承&#xff08;inhert&#xff09; 面向对象三大特征&#xff1a;封装、继承、多态 继承&#xff1a;所谓继承&#xff0c;是类与类之间的关系。就是基于一个已有的类&#xff0c;来创建出一个新类的过程叫做继承。主要提高代码的复用性。 1.1 继承的作用 1> 实现…

GraphRAG工程落地成本详细解读和实例分析

最近半年GraphRAG引起不少关注&#xff0c;。GraphRAG代表了一种创新的方法&#xff0c;用于支持检索增强生成&#xff08;RAG&#xff09;应用&#xff0c;使组织能够从其复杂的数据集中提取前所未有的价值。然而&#xff0c;与大多数组织使用的相对简单的数据嵌入和向量化过程…

mkv怎么转换成mp4?2个简单易用的格式转换方法

小王立志成为一名vlogger&#xff0c;为此&#xff0c;他在旅行的时候拍摄了一段旅游视频&#xff0c;把视频保存在mkv格式中。在平台上传时小王才发现mkv视频不被平台支持。 小王傻眼了&#xff0c;视频需要把mkv转换成mp4格式才能发布&#xff0c;但mkv怎么转换成mp4&#x…

Socket编程---TCP篇

目录 一. TCP协议 二. 服务端模块代码实现 三. 服务端调用模块代码实现 四. 客户端模块代码实现 五. 初始版本结果展示 六. 多进程版服务端 七. 多线程版服务端 八. 线程池版服务端 前文已经讲了UDP的知识&#xff08;点此查看&#xff09;。今天来讲讲…

探索AWS EC2:云计算的强大引擎

在数字化转型的浪潮中&#xff0c;企业对计算资源的需求不断增长。亚马逊弹性计算云&#xff08;EC2&#xff09;作为AWS&#xff08;亚马逊网络服务&#xff09;的核心产品之一&#xff0c;凭借其强大的功能和灵活性&#xff0c;成为了全球企业构建和扩展应用的首选平台。无论…

K8S - 外部访问集群

前言 文档可以承接前面的内容看 这里只做外部访问的介绍 正文 kubectl get po#打印某个pod的环境变量 kubectl exec nginx-7c5ddbdf54-6nfw2 \-- printenv |grep KUBERNETES#删除 service kubectl get svc kubectl delete svc nginx#使用 LoadBalancer 的方式重新创建 servi…

Etherpad在线文档协作编辑工具

Etherpad在线文档协作编辑工具 一、前言 Etherpad是一种开源的实时协作编辑器&#xff0c;允许多个用户同时编辑同一文档&#xff0c;并实时显示每个用户的输入内容。Etherpad最初由Etherpad基金会开发&#xff0c;后来被Google收购&#xff0c;现在由Apache软件基金会维护。E…

ElasticSearch-集群架构

核心概念 节点类型分片集群搭建 ES安全认证 集群内部安全通信 生产环境常见集群部署方式 单一角色增加节点水平扩展读写分离架构异地多活架构Hot & Warm 架构集群容量规划 产品信息库搜索时间序列的数据 核心概念 ES集群架构的优势 提高系统的可用性&#xff0c;部分节点…

【QT】学习笔记:枚举桌面窗口句柄

在 Qt 中&#xff0c;虽然 Qt 本身没有直接提供枚举桌面窗口的 API&#xff0c;但可以通过调用 Windows API 来实现枚举桌面上所有窗口的句柄&#xff0c;包括子窗口以及子窗口与父窗口的关系。我们可以使用 Windows 的 EnumWindows 和 EnumChildWindows 函数来枚举所有顶层窗口…

C语言指针进阶三:(回调函数,qsort函数的模拟)

回调函数 回调函数就是通过函数指针调用的函数&#xff0c;如果你把函数的指针作为参数传递给另一个函数&#xff0c;当这个指针被用来调用其指向的函数时&#xff0c;我们所说这就是回调函数。 qsort函数的使用&#xff08;回调函数案例&#xff09; 我们先看看qsort函数的…

【单调栈 】2289. 使数组按非递减顺序排列

本文涉及的基础知识点 单调栈分类、封装和总结 LeetCode2289. 使数组按非递减顺序排列 给你一个下标从 0 开始的整数数组 nums 。在一步操作中&#xff0c;移除所有满足 nums[i - 1] > nums[i] 的 nums[i] &#xff0c;其中 0 < i < nums.length 。 重复执行步骤&a…

【重磅推荐】《一本书读懂大模型:技术创新、商业应用与产业变革》发布!大模型零基础入门到精通

近日&#xff0c;由中国电信研究院天翼智库大模型研究团队编写、中国电信集团科技委主任邵广禄倾情作序的**《一本书读懂大模型&#xff1a;技术创新、商业应用与产业变革》**正式出版。本书系统介绍了大模型技术的发展历程、核心技术、行业应用、产业体系、治理问题以及未来展…

DeFi 发展的岔路口,Pencils Protocol带领投资者们“向前看”

DeFi 市场是否还存在 Alpha 机会&#xff1f; 走下坡路的 DeFi 去中心化金融&#xff08;DeFi&#xff09;曾是区块链世界发展的起点&#xff0c;也是链上世界流动性的重要支柱。然而&#xff0c;自 2021 年 DeFi 领域的总锁仓量&#xff08;TVL&#xff09;达到历史巅峰——…

模型压缩之剪枝

&#xff08;1&#xff09;通道选择 这里要先解释一下&#xff1a; &#xff08;1&#xff09;通道剪枝 那我们实际做法不是上面直接对所有层都添加L1正则项&#xff0c;而是仅仅对BN层权重添加L1正则项。通道剪枝具体步骤如下&#xff1a; 1.BN层权重添加L1正则项&#xf…