【Linux的权限命令详解】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

前言

shell命令以及运行原理

Linux权限的概念

Linux权限管理

一、什么是权限?

二、权限的本质

三、Linux中的用户

四、linux中文件的权限

4.1、文件访问者的分类(人)

4.2 文件类型和访问权限(事物属性)

五、快速掌握修改权限的做法【第一种】

5.1、修改拥有者、所属组、其他用户和所有人的权限

5.2、修改所有人中几个人的权限

5.3、对用户身份进行识别,是否只识别一次?

5.4、更改文件的拥有者

5.5 、更改文件的所属组

5.6、 同时更改拥有者和所属组

六、快速掌握修改权限的做法【第二种】

6.1 、八进制

七、文件类型

八、可执行权限

九、创建文件的默认权限

9.1 权限掩码

9.2 修改umask

十、目录的权限

十一、粘滞位

十二、在root的用户下新建用户和删除用户

总结


前言

世上有两种耀眼的光芒,一种是正在升起的太阳,一种是正在努力学习编程的你!一个爱学编程的人。各位看官,我衷心的希望这篇博客能对你们有所帮助,同时也希望各位看官能对我的文章给与点评,希望我们能够携手共同促进进步,在编程的道路上越走越远!


提示:以下是本篇文章正文内容,下面案例可供参考

shell命令以及运行原理

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。 而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?

从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:

1、将使用者的命令翻译给核心(kernel)处理。

2、同时,将核心的处理结果翻译给使用者。

对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的 操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。

shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。

帮助理解:如果说你是一个闷骚且害羞的程序员,那shell就像媒婆,操作系统内核就是你们村头漂亮的且有让你心动的MM小花。你看上了小花,但是有不好意思直接表白,那就让你你家人找媒婆帮你提亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给小花,而我们找到媒婆姓王,所以我们叫它王婆,它对应我们常使用的bash。

Linux权限的概念

Linux下有两种用户:超级用户(root)、普通用户。

超级用户:可以再linux系统下做任何事情,不受限制

普通用户:在linux下做有限的事情。

超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。

命令:su [用户名]

功能:切换用户。

例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。

Linux权限管理

一、什么是权限?

权限就是通过一定的条件,拦住一部分人,给另一部分人权利,来访问某种资源,比如vip,门禁之类的。

二、权限的本质

权限和人有关,权限和事物的属性有关

权限=人(角色)+事物(文件)属性有关

三、Linux中的用户

四、linux中文件的权限

4.1、文件访问者的分类(人)

  • 文件和文件目录的所有者:u—User(中国平民 法律题)
  • 文件和文件目录的所有者所在的组的用户:g—Group(不多说)
  • 其它用户:o—Others (外国人)

4.2 文件类型和访问权限(事物属性)

五、快速掌握修改权限的做法【第一种】

5.1、修改拥有者、所属组、其他用户和所有人的权限

一个文件的权限,谁能修改?

文件的拥有者、root

chmod

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

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

常用选项:

R -> 递归修改目录文件的权限

说明:只有文件的拥有者和root才可以改变文件的权限

① 用户表示符+/-=权限字符 实例:

+:向权限范围增加权限代号所表示的权限

-:向权限范围取消权限代号所表示的权限

=:向权限范围赋予权限代号所表示的权限

用户符号: 

u:拥有者(user)

g:拥有者同组用(group)

o:其它用户(other)

所属组和其他用户的权限操作和拥有者都是一样的,同上述操作。

a:所有用户(all)

5.2、修改所有人中几个人的权限

5.3、对用户身份进行识别,是否只识别一次?

  • 对于普通用户,自身要受到对应权限的约束,即使这个文件是自己的!

注意:对于文件的拥有者,如果删除了文件的拥有者权限,但是所属组的没有删除,它也会禁止读写操作.

结论:权限只会匹配一次!

5.4、更改文件的拥有者

  • 这个时候我们把拥有者的改成root用户,但是所属组还是原来的

结论:身份识别的时候只识别一次,一旦匹配成功就不继续匹配了,如果失败就继续匹配

5.5 、更改文件的所属组

这里如果再加上other的读和写的权限,就又可以了!

5.6、 同时更改拥有者和所属组

怎么不见修改other的权限呢?

因为不需要的。

六、快速掌握修改权限的做法【第二种】

6.1 、八进制

如上图所示:如果有一个字符的权限有,就是1;如果是-,就是0.

如果我们想去掉所有人的所有权限可以这样做。

chmod 000 test.txt

赋予所有权限就是下面这条命令.

chmod 777 test.txt

保留拥有者的读写权限

chmod 600 test.txt

七、文件类型

windows是通过后缀名来区分文件类型的。

Linux不通过后缀名来区分文件类型。(并不是说Linux不用后缀)

那么通过什么区分呢?

ls -l第一个属性列

-:普通文件,文本文件,可执行程序,库等都叫做普通文件
d:目录文件

b:块设备文件(磁盘等)
c:字符设备文件(显示器等)
p:管道文件
l:链接文件

我们创建一个管道文件

mkfifo pipe

八、可执行权限

如果我们要进入一个目录,需要什么权限? ----> 进入一个目录,需要x权限

能执行 = 具有可执行权限 (x)+ 一个可执行文件

总结:

进入一个目录需要x权限
目录的r权限:用户能否查看指定目录的文件信息
目录的w权限:决定用户是否能在指定的目录内新建,修改,删除文件

九、创建文件的默认权限

9.1 权限掩码

umask

在创建文件的时候,要在起始权限中,过滤掉(不是简单的减法)再umask中出现的权限

9.2 修改umask

umask 0000

修改了umask后,创建出来的文件权限也发生了改变,所以是uamsk影响了我们的默认权限

十、目录的权限

为什么我们普通人竟然可以删除别人的文件(包括root)合理吗?

删除一个文件和目标文件有关系吗? ---->没有关系!!!

那么和谁有关系呢? ---- >和我所在的目录有关系!!!

这个目录的拥有者和所属组所拥有的权限是rwx,root是超级管理员账号,他想干什么就干什么,root可以随便在别人的目录里面创建文件,也可以随便删除别人的文件。

但是,当root在别人的为目录里创建文件的话,还不让这个文件让任何人看。

这个文件的拥有者和所属组具有x权限可以进入目录,在具有r权限,仍然看不了root的文件内容,但是当具有w权限时,便具有了删除root文件的能力,当然只能删除root的文件,还是不能修改。

所以创建一个目录的时候是默认去掉写权限的,一个外来用户进入到这个目录是不能进行创建文件的,当然root除外~~

十一、粘滞位

如果我们想在Linux下,由多个用户建立一个共享文件,来被大家共同访问,怎么办?

首先这个文件不能在我们各自的家目录下创建,为什么?

因为家目录其他人是无法进来的。

所以,我们只能在系统的非用户目录下创建。(除了自己的家目录的一亩三分地之外,就只剩下root的地盘了),所以,我们要在root的家目录下,由root创建共享目录。

普通用户想要在root账号下创建目录,只能用sudo指令来提升mkdir的权限了。

我们来看一下具体的操作

因为root超级管理员把other的权限全打开了,所以其他用户都能够读写、修改并删除。

突然小红出现了,它想搞恶作剧,把小明跟小王聊天的文件给删掉了,那么有没有什么方法防住小红呢?

这时候我们就得引入一个新的概念粘滞位。

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

一、超级管理员删除

二、该目录的所有者删除

三、该文件的所有者删除

十二、在root的用户下新建用户和删除用户


总结

好了,本篇博客到这里就结束了,如果有更好的观点,请及时留言,我会认真观看并学习。
不积硅步,无以至千里;不积小流,无以成江海。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【成本价特惠】招募证书代理:工信部、PMP、阿里云、华为等认证,机会难得!

扫码和我联系 亲爱的读者朋友们, 今天,我想和大家分享一个难得的机会。我们目前正在积极招募各类证书的代理,包括工信部的证书、PMP(项目管理专业人士)证书、阿里云证书、华为证书、OCP 证书、CFA 证书等。这些证书在…

C++入门学习(七)整型

整型就是整数类型的数据(-1,0,1等等) 数据类型占用空间取值范围short(短整型)2字节 (-2^15 ~ 2^15-1) 32768~32767 int(整型)4字节(-2^31 ~ 2^31-1)long(长整形) Windows为4字节, Linux为4字节(32位), 8字节(64位) (-2^31 ~ 2^31…

LiteAD对接FusionCompute

2、FA发放云桌面并与FC对接 (1)创建虚拟机模板 (2)创建虚拟机命名规则 (3)创建虚拟机组 (4)创建桌面组 (5)创建域用户和组(就相当于在Microsoft …

基于SpringBoot Vue家政服务预约平台系统

大家好✌!我是Dwzun。很高兴你能来阅读我,我会陆续更新Java后端、前端、数据库、项目案例等相关知识点总结,还为大家分享优质的实战项目,本人在Java项目开发领域有多年的经验,陆续会更新更多优质的Java实战项目&#x…

【linux驱动】详细剖析第一个hello word驱动程序

文章目录 驱动程序的框架驱动程序的使用示例 驱动程序的框架 Linux 驱动的基本框架主要由模块加载函数,模块卸载函数,模块许可证声明,模块参数,模块导出符号,模块作者信息等几部分组成,其中模块参数&#…

C++——vector的使用及其模拟实现

vector的使用及其模拟实现 文章目录 vector的使用及其模拟实现1. vector的使用1.1 构造函数construct1.2 获取当前存储的数据个数size()和最大容量capacity()1.3 访问1.3.1 operator[]运算符重载1.3.2 迭代器访问1.3.3 范围for 1.4 容量相关reserve()和resize()1.5 增&#xff…

【趣味题-04】20240120百鸡百钱(遍历循环排除,类似加减法)

背景需求 题目 5:百鸡百钱 作者:阿夏 时间:2024年1月20日百鸡百钱 公鸡每只 5 元,母鸡每只 3 元,小鸡 3 只一元, 现要求用 100 元钱买 100 只鸡(三种类型的鸡都要买), 问公鸡、母鸡、小鸡各买几…

Oracle 经典练习题 50 题

文章目录 一 CreateTable二 练习题1 查询"01"课程比"02"课程成绩高的学生的信息及课程分数2 查询"01"课程比"02"课程成绩低的学生的信息及课程分数3 查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩4 查询平均成绩小于…

“加密行业迈向上市潮”!全球第二大稳定币发行商,秘密提交IPO申请!

在过去的15年里,虽然加密行业蓬勃发展,但上市公司的数量却相对稀少。然而,随着加密市场在经济走强的背景下出现反弹,今年区块链领域的投资资金和潜在的IPO似乎均有望迎来转机。 高盛预测,2024年下半年IPO活动将更加活跃…

Red Hat Enterprise Linux 8.9 安装图解

引导和开始安装 选择倒计时结束前,通过键盘上下键选择下图框选项,启动图形化安装过程。需要注意的不同主板默认或者自行配置的固件类型不一致,引导界面有所不同。也就是说使用UEFI和BIOS的安装引导界面是不同的,如图所示。若手动调…

设计一个Key-Value缓存去存储最近的Web Server查询的结果

1: 定义Use Case和约束 Use Cases 我们可以定义如下 Scope: User 发送一个 search request, 缓存命中成功返回DataUser 发送一个 search request, 缓存未命中,未成功返回DataService 有高可用 约束和假设 状态假设 Traffic 分布不是均匀的 热度高的查询总是被…

接口测试遇到500报错?别慌,你的头部可能有点问题

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

class_13:静态成员static关键字

#include <iostream>using namespace std;class Myclass{ public:int datas;static int staticValue; //静态成员变量在类外进行初始化void printInfo(){cout<<datas<<endl;}static int getStaticDatas()//静态成员函数不能直接访问非静态变量和非静态函数&a…

Python sleep函数用法:线程睡眠

如果需要让当前正在执行的线程暂停一段时间&#xff0c;并进入阻塞状态&#xff0c;则可以通过调用 time 模块的 sleep(secs) 函数来实现。该函数可指定一个 secs 参数&#xff0c;用于指定线程阻塞多少秒。 当前线程调用 sleep() 函数进入阻塞状态后&#xff0c;在其睡眠时间…

GPT应用_AutoGPT

项目地址&#xff1a;https://github.com/Significant-Gravitas/AutoGPT 1 功能 1.1 整体功能&#xff0c;想解决什么问题 单独使用 ChatGPT 时&#xff0c;只提供基本的聊天&#xff0c;无法实现复杂多步的功能&#xff0c;以及与其它应用交互&#xff0c;如果想提供某种功…

linux(七):I2C(touch screen)

本文主要探讨210触摸屏驱动相关知识。 I2C子系统 i2c子系统组成部分:I2C核心,I2C总线驱动,I2C设备驱动 I2C核心&#xff1a;I2C总线驱动和设备驱动注册注销方法 I2C总线驱动&#xff1a;I2C适配器(I2C控制器)控制,用于I2C读写时序(I2C_adapter、i2c_a…

2023:既是结束也是开始

2023年注定是不平凡的一年&#xff0c;这一年真的经历了很多事&#xff0c;包括学习、生活、工作等等&#xff0c;上半年忙着毕业以及一些其他的事情&#xff0c;很多挖的坑都没来得及填&#xff0c;下半年研一开学以后终于有了足够的时间学习&#xff0c;接下来就用这篇文章来…

MySQL执行计划全面解析

执行计划 如果不知道执行计划&#xff0c;那就不可能进行SQL优化&#xff0c;那么执行计划是什么呢&#xff1f; 使用explain关键字可以模拟优化器执行SQL查询语句&#xff0c;从而知道MySQL是如何处理你的SQL的&#xff0c;进而分析性能瓶颈 用起来其实很简单&#xff0c;使用…

Swin版VMamba来了!精度再度提升,VMamba-S达成83.5%,超越Swin-S,已开源!

本文首发&#xff1a;AIWalker 就在昨日&#xff0c;华科王兴刚团队公开了Mamba在ViT的入局Vim&#xff0c;取得了更高精度、更快速度、更低显存占用。相关信息可参考&#xff1a; 入局CV&#xff0c;Mamba再显神威&#xff01;华科王兴刚团队首次将Mamba引入ViT&#xff0c;更…

Java 内存模型深度解析

优质博文&#xff1a;IT-BLOG-CN 一、并发编程模型的两个关键问题 【1】并发中常见的两个问题&#xff1a;线程之间如何通信及线程之间如何同步。通信是指线程之间以何种机制来交换信息。在命令式编程中&#xff0c;线程之间的通信机制有两种&#xff1a;内存共享和消息传递&…