当前位置: 首页 > 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用户删除,该目录或文件的拥有者删除。

http://www.lryc.cn/news/432550.html

相关文章:

  • 启动Spring Boot报错
  • 部署project_exam_system项目——及容器的编排
  • 网络工程师学习笔记——无线通信网
  • Vue(十三) 路由、路由嵌套、query、param传参、propos、replace属性。编程式路由导航,特有的生命周期函数,路由守卫
  • ArgoUML与StarUML的安装
  • 828华为云征文|华为云服务器Flexus X搭建悟空crm管理系统——助力企业云上管理(解决APP Referer校验失败问题)
  • 计算机毕业设计选题推荐-健康健身追踪系统-运动健身系统-Java/Python项目实战
  • FPGA开发:初识FPGA × 开发环境
  • 电脑驱动分类
  • 理解C++全局对象析构顺序与 IPC 资源管理:避免 coredump
  • 云计算之大数据(下)
  • 硬件工程师笔试面试知识器件篇——二极管
  • 操作系统安全保护
  • STM32硬件篇:W25Q64
  • uni-app 获取当前位置的经纬度以及地址信息
  • 【CSS】尺寸单位
  • Agent(智能体)和 MetaGPT,一句话实现整个需求应用代码
  • [数据结构] 哈希结构的哈希冲突解决哈希冲突
  • Wimdows使用Appium IOS自动化
  • C语言深度剖析--不定期更新的第四弹
  • 【手撕数据结构】八大排序神功(上)
  • 【2024高教社杯全国大学生数学建模竞赛】B题模型建立求解
  • OpenHarmony鸿蒙开发( Beta5.0)智能手表应用开发实践
  • 共享单车轨迹数据分析:以厦门市共享单车数据为例(一)
  • SprinBoot+Vue在线商城微信小程序的设计与实现
  • 4--SpringBootWeb-请求响应
  • 电脑点击关机之后,又自动重启开机了。根本就关不了?
  • 强化网络安全:通过802.1X协议保障远程接入设备安全认证
  • 链动2+1模式AI智能名片S2B2C商城小程序源码在社群商业价值构建中的应用探索
  • 基于SpringBoot+Vue+MySQL的校园周边美食探索及分享平台