【Linux从入门到放弃】Linux权限详解

news2024/12/22 20:39:20

🧑‍💻作者: @情话0.0
📝专栏:《Linux从入门到放弃》
👦个人简介:一名双非编程菜鸟,在这里分享自己的编程学习笔记,欢迎大家的指正与点赞,谢谢!

在这里插入图片描述

Linux权限

  • 一、什么是权限?
  • 二、Linux上的用户
  • 三、Linux权限管理
    • 1.文件访问者的分类(用户扮演的角色)
    • 2.文件类型和访问权限(事物属性)
      • 2.1文件类型
      • 2.2 文件访问者的权限
      • 2.3 文件权限值的表示方法
      • 2.4 文件访问权限的相关设置方法
        • 2.4.1 设置文件的访问权限(chmod)
        • 2.4.2 修改文件拥有者(chown)
        • 2.4.3 修改文件或目录的所属组(chgrp)
      • 2.5 文件的默认权限
    • 3.目录权限
    • 4.粘滞位
  • 总结


一、什么是权限?

  生活当中处处存在着有关权限的案例,比如:在腾讯视频、爱奇艺视频这样的视频软件上面总会有许多的VIP电视剧或者电影,只有你充值了对应的会员才可以观看;王者荣耀上有着许多好看的皮肤,但是只有你花钱购买了它才可以穿在你对应的英雄身上。这种就可以认为权限是限制人的行为的。
  除此之外,你去西餐厅给人家服务员说给我上一道麻婆豆腐;你在五金店给人家老板说给你装上三斤橘子;你要在腾讯视频里敲代码。很明显这些都是不可能的,而这也是一种权限,这种权限代表的是你所访问的对象根本没有这种“属性”。
  总的来说,权限 = 约束人的行为 + 访问对象的属性

二、Linux上的用户

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

超级用户:可以再linux系统下做任何事情,不受限制 ;
普通用户:在linux下做有限的事情。

超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
在这里插入图片描述

命令:su [用户名]
功能:切换用户。

  想要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。
在这里插入图片描述

刚开始在普通用户(zhuxu)下,通过 su 进入到了 root 用户,再通过 su zhuxu 进入到普通用户下。

三、Linux权限管理

1.文件访问者的分类(用户扮演的角色)

文件和文件目录的所有者:u—User
文件和文件目录的所有者所在的组的用户:g—Group
其它用户:o—Others

  对于他们三个之间的关系可以这样理解,比如你和你小组要共同完成一个算法项目的实现,你们打算分工合作,对于你所完成的模块,你就是这个文件的所有者(u),而对于你的组内同学,他就可以当作是该文件的组内用户(g),而对于你非组内的同学,他们就可以是其他用户(o)。
  对于这三种文件访问者的权限,只有该文件的所有者和超级用户可以更改。

  此时,也许有的人就有点搞不懂,在Linux中怎么一会是用户,一会又是文件访问者,那么我自己到底是谁呢?它们之间由什么区别呢?
  可以这么理解,在Linux中总共只有两类人:普通用户和超级用户,而对于这两种用户它们面对不同的文件或是目录都会扮演着不同的角色。对于某一个用户来说,它有可能是某一文件的所有者,同时还是另一文件的组内用户,同时还是另一文件的其它用户。一个人(用户)在不同的场景下扮演着不同的角色。
  可以看下图,对于目录123来说,zhuxu既是该目录的拥有者,也是该目录的组内用户,而除zhuxu以外的所有用户都将是其他用户,root也是。

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

当我们使用 ll 命令查看当前目录下的一切信息时,可以看到有以下内容:
在这里插入图片描述
在这里插入图片描述

2.1文件类型

  在 Linux 中,区分文件的类型不是按照文件后缀而区分,而是通过文件属性中第一列的第一个字符来区分的。

d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

2.2 文件访问者的权限

  文件访问者的权限分为三块,从左至右依次为文件所有者、组内用户、其他用户所对应的权限。
  对于文件的基本权限有三种,分别是:

读(r):read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
写(w):write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
执行(x):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
“-”表示不具有该项权限

注意:对于文件访问者的权限,它只能限制普通用户的行为,对于超级用户来说,不管有没有对该文件的任何操作权限,它都可以为所欲为。谁让人家是超级用户呢。
  看下图,test.txt文件的拥有者和组内用户都是zhuxu,那么root按道理来说就应该是其他用户,可以看该文件的其他用户没有任何权限,但是,当我们以 root 的身份来操作该文件时,发现该文件对 root 的限制是不起任何作用的。

在这里插入图片描述

2.3 文件权限值的表示方法

(1)字符表示方法

Linux表示说明Linux表示说明
r w x可读可写可执行- w x可写可执行
r w -可读可写- w -可写
r - x可读可执行- - x可执行
r - -可读- - -无任何权限

(2)8进制数值表示方法

权限符号八进制二进制
rwx7111
rw6110
rx5101
r4100
wx3011
w2010
x1001
0000

2.4 文件访问权限的相关设置方法

2.4.1 设置文件的访问权限(chmod)

格式chmod [参数] 权限 文件名
常用选项: R -> 递归修改目录文件的权限

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

chmod命令权限值的格式:

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

用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

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

权限字符:
r :可读
w:可写
x:可执行

chmod u+w test.txt:给文件拥有者加上写权限
chmod o-x test.txt:给文件其他用户减去执行权限
chmod a=r test.txt:给文件的所有用户都加上读权限

②三位8进制数字

chmod 664 test.txt:将该文件的拥有者和组内用户的权限改为可读可写不可执行,其他用户的权限改为可读不可写不可执行
chmod 640 test.txt:将该文件的拥有者的权限改为可读可写不可执行,组内用户的权限改为可读不可写不可执行,其他用户无任何权限

2.4.2 修改文件拥有者(chown)

格式chown [参数] 用户名 文件名
chown users test.txt

2.4.3 修改文件或目录的所属组(chgrp)

格式chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组
chgrp users /abc/f2

2.5 文件的默认权限

  要知道,新建文件默认权限为666 ,新建目录默认权限为777
  但实际上你所看到的新创建的文件和目录的权限往往不是上面这个值。我们看到的文件权限是664,目录的权限是775。
在这里插入图片描述
  原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask,超级用户默认掩码值为022,普通用户默认为002。

  比如说:新建文件的默认权限为666,二进制就为110110110,普通用户默认权限掩码为002,二进制为000000010,将其取反为111111101,再与文件默认权限相与就为110110100,十进制就为664。

  可是看了上面如何算文件的最终权限,为什么不是默认权限和权限掩码按位异或呢?明明异或也是对的,为什么还要那么麻烦要将权限掩码取反再与呢?看下面这幅图:
  我们先将权限掩码改为007,二进制为000000111,此时创建一个abc.c的文件,它的默认权限为666,二进制为110110110,若选择按位异或的方法计算最终权限为110110001,很明显这是不对的,而通过取反再与的方法算出的是110110000。
在这里插入图片描述

3.目录权限

可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容;
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件。
可执行权限: 如果目录没有可执行权限, 则无法cd到目录中;

在这里插入图片描述

从上图可以看到,对于普通用户来说,它没有对目录123读的权限,所以当进入到目录123中无法使用 ll 指令来浏览该目录信息。

在这里插入图片描述

从上图可以看到,用户没有对目录写的权限,当进入到该目录下无法进行删除或创建指令的执行

在这里插入图片描述

从上图可以看到,用户没有对目录执行的权限,所以就无法进入到该目录下

4.粘滞位

  在谈到粘滞位的问题,首先要知道的是在使用Linux的时候,未来可能会存在一些共享目录,顾名思义就是被所有的普通用户所共享,用来保存普通用户产生的临时数据。共享目录通常都是 root 所提供的。
  但是呢,有时你突然不想把某个文件给别人看了,那么你就把这个文件的其他用户的权限都删除掉,这时其他用户就无法对该文件可读可写可执行,虽然别人无法操作你的文件,可是他可以删除掉你的文件,这个是不是就很离谱,你不给他看,他就直接给你删掉。所以说,为了避免这样的问题的发生,便引入粘滞位这一概念。它的目的就是为了让大家共享文件,且不让其他人随便删除别人的文件。
  粘滞位只能给目录添加,也就是给共享目录添加。

在这里插入图片描述
  可以看到在执行了 chmod +t public 指令后,在目录 public 的权限后面多了一个 T ,这就意味着该目录里边的文件不能被其他用户所删除。

  要知道,在共享目录里,在未加入粘滞位之前是无法阻止其他人删除别人文件的。在目录的权限里边提到过,删除文件对应的是目录的 w 权限,那么不想让其他人删除别人的文件是不是可以直接去掉其他用户的 w 权限就可以呢?当然不可以,因为这是一个共享目录,当你去掉 w 权限之后,虽然其他人不能删除别人的文件了,但是该目录下的所有用户也将无法再创建文件了。所以说,只能采取粘滞位的方法来解决该问题。同时,这也说明了在共享目录里,一个文件能否被删除不在于该文件的权限怎样,而是取决于共享目录的权限。
  当一个目录被设置为"粘滞位",则该目录下的文件只能由超级管理员和该文件的所有者删除。

———————————————————————————————————————————————————

总结

此篇博客主要是分享关于Linux权限的相关知识,这也算是学习Linux的基础知识吧。基础打牢实了,以后学习起来才会更加轻松顺手么。
  感谢您的阅读,若文章存在问题还烦请指出,感觉有帮到你的话还请一键三连。

在这里插入图片描述

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

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

相关文章

m基于遗传优化的复杂工序调度matlab仿真,输出甘特图和优化收敛图

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 遗传算法 (Genetic Algorithm,GA) 是一种基于规律进化的随机优化搜索算法,该算法最早是由Holland在1975年提出的。遗传算法的主要优势是通过对目标对象进行优化操作&#…

力扣-234-回文链表

回文链表 CategoryDifficultyLikesDislikesalgorithmsEasy (52.70%)1576- TagsCompanies给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 示例 1: 输入&#xff…

FTP文件传输服务

FTP 服务概述2-1 FTP连接及连接模式 控制连接:TCP 21,用于发送FTP命令信息 数据连接:TCP 20,用于上传、下载数据 数据连接的建立类型 主动模式:服务端从 20 端口主动向客户端发起连接 被动模式:服务端在指…

SIM8262E-M2,SIM8262A-M2,SIM8260C-M2,SIM8260C 5G定位模组支持多频段

SIM8262:支持R16标准的5G模组,支持多频段5G NR / LTE-FDD / LTE TDD / HSPA,支持SA和NSA双组网模式,高达 2.4Gbps的数据传输;扩展能力强,接口丰富,包括PCIe、USB3.1、GPIO等。该模块为客户的应用…

Polygon zkEVM中的子约束系统

1. 引言 前序博客有: Polygon zkEVM工具——PIL和CIRCOM Polygon zkEVM中主要设计了3种子约束系统: 1)Permutation check子约束系统:PIL中的关键字为is。 2)Plookup 子约束系统:PIL中的关键字为in。 …

数据结构——栈,队列,及其结构特点应用。

​✅<1>主页&#xff1a;我的代码爱吃辣 &#x1f4c3;<2>知识讲解&#xff1a;数据结构——栈&#xff0c;队列。 &#x1f525;<3>创作者&#xff1a;我的代码爱吃辣 ☂️<4>开发环境&#xff1a;Visual Studio 2022 &#x1f3e1;<5>系统环境…

路由查找原理

最近在设计Netflow采集系统时&#xff0c;我想要将客户端的公网IP根据IP库转为对应的国家&#xff0c;此外在CACHE机房中&#xff0c;交换机上是没有AS信息的&#xff0c;因此我们也需要根据IP去查路由库&#xff0c;转换出AS信息。 这两个问题的本质是类似的&#xff0c;无论是…

棱镜七彩作为首批成员单位入选工信部网络安全产业发展中心重点实验室!

近日&#xff0c;工信部网络安全产业发展中心公布了网络安全技术与产业发展工信部重点实验室专项工作组成员单位名单。棱镜七彩首批入选&#xff0c;成为信息技术应用创新基础软硬件安全工作组的成员单位&#xff01; 为深入贯彻落实网络强国战略&#xff0c;充分发挥网络安全技…

FOC控制之小A小B小C是如何追求小D的

1、写在前面 随着电动汽车的热火&#xff0c;关于FOC控制技术的文章这几年在网络上可谓是一搜一大把&#xff0c;各种理论分析&#xff0c;公式推导&#xff0c;应有尽有。通过这些文章&#xff0c;可以看出大佬还是很多的。另外也有FOC的开源硬件。而在大几年前&#xff0c;第…

党务管理系统搭建,答题获积分,学习有好礼

党务管理系统搭建是以服务党员群众为目的的&#xff0c;然后通过互联网信息化手段&#xff0c;将党建工作与大数据等新技术融合&#xff0c;实现党建资源答题学习的数字化整合&#xff0c;也提升了党建科学化水平。 党务管理系统搭建助力党建数字化、规范化&#xff1a;利用信息…

快来生成你专属的英文名吧(使用字符级RNN)!

目录 一.前言 二.准备数据 三.构造神经网络 四.训练 五.网络采样&#xff08;预测&#xff09; 一.前言 数据集为18个国家的姓氏&#xff0c;任务是根据训练得到的模型&#xff0c;在给定国家类别和首字母后&#xff0c;能得到一个与该国人名非常相似的一个人名。 > …

openstack基本命令小结

文章目录Openstack0、进入1、查看日志日志位置日志格式举例2、CLI命令格式基本格式使用帮助3、命令文档&#xff08;常用&#xff09;4、基础组件的常用命令1、keystone查询类查看所有组件状态查看所有服务的状态查看域列表查看服务列表查看节点列表查询用户列表查询用户详细信…

用5G制造5G,中国电信打造“滨江模式”,助力电子信息制造产业升级

工业和信息化部近日印发《5G全连接工厂建设指南》&#xff0c;提出“十四五”时期&#xff0c;主要面向原材料、装备、消费品、电子等制造业&#xff0c;采矿、港口、电力等重点行业领域&#xff0c;加快5G全连接工厂建设。中国电信联合中兴通讯打造南京滨江智能工厂&#xff0…

Python第三方库之MedPy

1.MedPy简介 MedPy 是一个图像处理库和针对医学(如高维)图像处理的脚本集合&#xff0c;此处主要讨论利用该库计算常见的医学图像分割任务评价指标&#xff0c;如Dice、Jaccard、Hausdorff Distance、Sensitivity、Specificity、Positive predictive value等。 论文表格的表头…

docker部署的redis集群 添加节点(扩容)

上篇博文完成了在 docker 中部署 redis 多主多从集群&#xff1a;点这里 这篇博文说一下如何在集群基础上继续添加节点&#xff0c;也就是给集群扩容 博文中的命令出现的 111.111.111.111 均换成实际 IP 执行 创建要添加的一主一从容器 这里创建一个6377主节点和一个6378从节…

ArgoDB 5.1 正式发布:多模融合、实时分析和数据安全多重升级

Transwarp ArgoDB是星环科技自主研发的高性能分布式分析型数据库&#xff0c;在PB级数据量上提供极致的数据分析能力。ArgoDB支持标准SQL语法和分布式事务&#xff0c;提供高并发高速数据写入、复杂查询、多模分析、数据联邦、隐私计算和动态脱敏等能力。基于星环科技ArgoDB数据…

怎么自由裁剪图片大小?分享一款在线图片编辑工具

工作的时候常常需要用图片编辑工具把图片裁剪为我们想要的大小&#xff0c;但下载处理图片软件又耗费时间&#xff0c;那么有没有比较快捷的修改图片的方法呢&#xff1f;其实我们可以用在线图片处理&#xff08;在线ps 图片编辑制作工具 免费照片编辑器_压缩图&#xff09;工具…

日期插件(默认显示当前日期)---年月

方法&#xff1a;加载页面时将当前日期赋值 <!-- 选择年月--> <div class"form-group"><label class"col-sm-2 control-label is-required">时间&#xff1a;</label><button id"bin0"><< </button&g…

Nvidia 驱动安装

由于使用unreal engine editor 开发,需要安装nvidia 独显驱动,遇到各种坑,在此记录,方便自己以后再次遇到,也希望能帮助他人辟坑 系统: Ubuntu18.04 显卡:Geforce GTX 1650 UE版本:5.1.0 1. 自动安装 sudo ubuntu-drivers devices 推荐安装470 sudo ubuntu-drivers autoi…

Redis哨兵模式原理剖析,监控、选主、通知客户端你真的懂了吗?

哨兵启动后只指定了master的地址&#xff0c;要想知道整个集群中完整的拓扑关系怎么做呢&#xff1f; 哨兵每隔10秒会向每个master节点发送 info 命令&#xff0c; info 命令返回的信息中&#xff0c;包含了主从拓扑关系&#xff0c;其中包括每个slave的地址和端口号。有了这些…