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

【Linux系统】Linux权限讲解!!!超详细!!!

目录

Linux文件类型

区分方法

文件类型 

Linux用户

用户创建与删除

用户之间的转换

su指令

普通用户->超级用户(root)

超级用户(root) ->普通用户

普通账户->普通账户

普通用户的权限提高

sudo指令

注:

Linux权限

定义

权限操作

1、修改文件权限属性

1.1chmod指令:修改文件权限属性

1.2 身份匹配机制

1.3 x 权限:可执行权限

2、修改使用文件角色

2.1 chown指令:可以修改文件的拥有者

2.2 chgrp指令:修改文件所属组

2.3 sudo chown 用户名/用户名 文件名

目录文件权限

r:是否允许用户查看执行目录文件下的文件

w:是否允许用户修改执行目录文件下文件

x:是否允许用户进入目录文件

最终权限 = 起始权限 去掉 umask

1、文件起始权限(新建时就带有的权限):

2、umask:权限掩码

多个用户间进行文件和数据的共享

1、把该文件或数据放在一个公共目录文件下,然后再公共目录下让多个普通用户以other身份来进行数据分享

2、粘滞位[t]

3、file指令:查看文件类型及更详细的信息


Linux文件类型

区分方法

在不同操作系统中,区分文件类型的方法各有不同

1、在Windows中,是以文件后缀来区分文件类型

2、在Linux中,是以文件属性来区分文件类型

但是我们在Linux中所使用到的一些工具也是会以文件后缀来区分类型,如:g++

注:

虽然Linux中是以文件属性来区分类型的,但我们在创建文件时,是可以自己在文件后面加上不同的后缀的,让我们自己在使用的时候可以一眼看出来

文件类型 

文件类型
d目录文件(类似于Windows中的文件夹)
-普通文件:包括源文件、文本文件、可执行文件、音视频文件等
l软链接(类似于Windows中的快捷方式)
b块设备文件:例如硬盘、光驱等(支持随机读取)
c字符设备文件:例如显示屏、键盘等(不支持随机读取,读取时以字符为单位)
p管道文件
s套接口文件

Linux用户

用户创建与删除

1、adduser 用户名

2、passwd 用户名

然后输入密码,就创建成功了(这个密码以后就是这个用户的密码了)

删除用户:userdel 用户名

注:删除用户必须在root账号下才能进行

用户之间的转换

su指令

用法:su 用户名

能实现用户账号之间的转换,但不能进行两个普通账号的直接转换

1、su 用户名:这种方法只是单纯切换身份,但不改变工作目录

 

2、su - 用户名:这种方法会重新登录账号,工作目录变为根目录/

普通用户->超级用户(root)

1、su root 

2、passwd:root账号密码

密码成功就可以切换到root账号

超级用户(root) ->普通用户

root账号是系统的超级账号,它具有最高权限,可以直接切换成系统下任意一个账号

所以直接一个:su 用户名,就以实现切换

普通账户->普通账户

普通账户之间的转换需要先切换成root账号,在切换成另一个普通账户,因为我们无法得知另外一个普通账户的密码

我们要想直接切换成另一个普通账户,就必须知道另一个普通账户的密码,但这在工作环境中是不可能的,所以我们要想切换成另外一个普通账户,最简单的方式就是通过root来进行普通账户的切换

普通用户的权限提高

普通用户是不可以越出自身所处的工作目录之外对系统其他目录内文件进行操作的

sudo指令

在对文件进行操作前加上sudo,就可以提高用户的权限,让它以root的身份进行指令操作

而且,加上sudo创建的文件也是以root身份创建的

注:

文件操作中第一次使用该指令的时候,是需要输入当前用户的密码,然后下次使用在系统规定的时间内就不需要再输入密码了

但使用这个指令的前提是,必须要在root账号下加入"白名单",新创建用户默认是无法执行该指令的

而这个白名单就是/etc/sudoers:在/etc/sudoers用nano(记事本)打开,然后下翻到100多行处,加入

用户名     ALL=(ALL)    ALL

就可以了 

Linux权限

定义

权限 = 用户身份 + 文件权限属性(r、w、x)

 所谓的权限就是允许什么人做什么事

在Linux中文件属性中就分为这几部分

在这里就出现了每个文件对于不同的用户的权限也就有所不同(三个权限一组),从左到右依次是:拥有者、所属组、other

而对于这些不同的用户,我们把它们分为三组

1、拥有者(u):文件或文件目录的所有者

2、所属组(g):和拥有者所在同一组的用户

3、other(o):其他用户

权限操作

1、修改文件权限属性

1.1chmod指令:修改文件权限属性

chmod 用户(u/g/o) [+/-/=] 权限(rwx) 文件名

注:当对多个用户进行权限操作时,就需要用","来隔开

也可以用“a”来对三种用户一起进行操作

chmod a [+/-/=] 权限(rwx) 文件名yong

还有一种方法就是用八进制数来进行权限的修改

那我们就是通过每个用户想要的权限进行八进制计算就可以修改权限

例: 

当我们将拥有者的权限全部清除了的话,拥有者就无法在对该文件进行任何操作了,这种操作一般用于该文件操作完成了,防止后面操作对该文件进行误操作时而进行的

1.2 身份匹配机制

在权限进行身份匹配时,身份就只是会匹配一次,一旦匹配成功则就会考虑当前身份下的权限就不会继续往下匹配了

匹配顺序:从左往右匹配身份

只有当前一次匹配失败才会继续往右匹配

1.3 x 权限:可执行权限

x权限是系统支持的可执行权限,但不代表有x权限文件就能执行

一个可执行文件 = 可执行权限 + 文件本身能执行

2、修改使用文件角色

2.1 chown指令:可以修改文件的拥有者

chown 其他用户 文件名

该指令只能在root账号下才可以实现,或者加上suto(必须提权)

因为把一个文件交给另一个用户,会影响另一个用户,所以为了安全起见就必须在root下才可以进行

2.2 chgrp指令:修改文件所属组

chgrp 其他用户名 文件名

它的操作和chown差不多,都必须提权才能使用

2.3 sudo chown 用户名/用户名 文件名

可以同时修改拥有者和所属组  

目录文件权限

r:是否允许用户查看执行目录文件下的文件

w:是否允许用户修改执行目录文件下文件

这里的修改是指,能否在目录文件下新建文件和删除文件,以及给目录下已存在文件重命名

它不会影响修改文件权限属性

由此也可以知道:一个文件是否能被删除是取决于所处目录文件的权限

x:是否允许用户进入目录文件

最终权限 = 起始权限 去掉 umask

1、文件起始权限(新建时就带有的权限):

普通文件的起始权限:666

目录文件的起始权限:777

2、umask:权限掩码

权限掩码就是过滤掉在权限掩码中出现的权限,不同系统的权限掩码各有不同

我们可以在系统中输入umask来查看该系统的权限掩码

权限掩码也是可以进行设置:umask + 要修改的权限掩码

所谓的最终权限 = 起始权限 去掉 umask,其中的去掉其实是用起始权限&(~umask)

多个用户间进行文件和数据的共享

1、把该文件或数据放在一个公共目录文件下,然后再公共目录下让多个普通用户以other身份来进行数据分享

这个办法是有缺点的:会出现互删的情况,即使通过修改目录权限w来禁止这种情况,但会影响该目录文件新建和重命名文件,而且也无法再对自己的文件进行修改

2、粘滞位[t]

给执行目录文件加上粘滞位(chmod +t 目录文件名)

当一个目录文件被设置了粘滞位后,该目录下的文件就只能被:

· root账号删除

· 该目录的拥有者删除

· 该文件的拥有者删除

3、file指令:查看文件类型及更详细的信息

file 文件名

 

相关文章:

【Linux系统】Linux权限讲解!!!超详细!!!

目录 Linux文件类型 区分方法 文件类型 Linux用户 用户创建与删除 用户之间的转换 su指令 普通用户->超级用户(root) 超级用户(root) ->普通用户 普通账户->普通账户 普通用户的权限提高 sudo指令 注: Linux权限 定义 权限操作 1、修改文…...

Winform零基础从入门到精通(5)——WinForm菜单与工具栏开发详解

一、核心控件与功能 MenuStrip(顶部菜单栏) • 功能:创建应用程序主菜单,支持多级子菜单和快捷键。 • 关键操作: ◦ 添加菜单项:直接在菜单栏输入文字(如“文件(F)”),…...

2.创建Collection、添加索引、加载内存、预览和搜索数据

milvus官方文档 milvus2.3.1的官方文档地址: https://milvus.io/docs/v2.3.x 使用attu创建collection collection必须要有一个主键字段、向量字段 确保字段类型与索引类型兼容 字符串类型(VARCHAR)通常需要使用 Trie 索引,而不是 AutoInd…...

AIGC 新势力:探秘海螺 AI 与蓝耘 MaaS 平台的协同创新之旅

探秘海螺AI:多模态架构下的认知智能新引擎 在人工智能持续进阶的进程中,海螺AI作为一款前沿的多功能AI工具,正凭借其独特的多模态架构崭露头角。它由上海稀宇科技有限公司(MiniMax)精心打造,依托自研的万亿…...

一文解读DeepSeek在法律商业仲裁细分行业的应用

引言 当AI闯入法律界:DeepSeek如何把商业仲裁变成“纠纷快车道” AI技术正在像水电煤一样渗透生活,随着DeepSeek的爆火出圈,全国各行各业都在如火如荼地接入DeepSeek,以期望利用DeepSeek的“超能力”来重塑各自行业的效能和格局&a…...

快速入手-基于Django的主子表间操作mysql(五)

1、如果该表中存在外键,结合实际业务情况,那可以这么写: 2、针对特殊的字典类型,可以这么定义 3、获取元组中的字典值和子表中的value值方法 4、对应的前端页面写法...

HTTPS协议—加密算法和中间攻击人的博弈

活动发起人小虚竹 想对你说: 这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧&#xff01…...

【大模型理论篇】CogVLM:多模态预训练语言模型

1. 模型背景 前两天我们在《Skywork R1V: Pioneering Multimodal Reasoning with Chain-of-Thought》中介绍了将ViT与推理模型结合构造多模态推理模型的案例,其中提到了VLM的应用。追溯起来就是两篇前期工作:Vision LLM以及CogVLM。 今天准备回顾一下Cog…...

AI知识补全(一):tokens是什么?

名人说:苔花如米小,也学牡丹开。——袁枚《苔》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、什么是Tokens?二、为什么Tokens如此重要?1.模型的输入输出限制2.…...

Wpf Avalonia-实现中英文切换工程

文章目录 language工程项目代码创建获取资源文件string工程图片主项目引用LanguageView中使用ViewModel中使用language工程项目 <Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><ImplicitUsings>enable</ImplicitUsings><TargetFrame…...

pyqt5报错:qt.qpa.plugin: Could not find the Qt platform plugin “xcb“(已解决)

我在使用pyqt库的时候报错&#xff1a; qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in \ "/mnt/private_disk/anaconda3/envs/aot-manip/lib/python3.8/site-packages/PyQt5/Qt5/plugins/platforms" even though it was found. This ap…...

【MySQL数据库】触发器与事件

MySQL触发器 trigger&#xff0c;在表的插入insert、更新update、删除delete操作发生时自动执行MySQL语句。 学过Qt的都知道信号槽&#xff0c;一旦发出某个信号&#xff0c;那么就会触发关联的信号槽函数。触发器就类似于这个操作。 创建触发器时需要给出一些信息&#xff…...

【LC插件开发】基于Java实现FSRS(自由间隔重复调度算法)

&#x1f60a;你好&#xff0c;我是小航&#xff0c;一个正在变秃、变强的文艺倾年。 &#x1f514;本文讲解【LC插件开发】基于Java实现FSRS&#xff08;自由间隔重复调度算法&#xff09;&#xff0c;期待与你一同探索、学习、进步&#xff0c;一起卷起来叭&#xff01; 目录…...

java后端接收数组,数组长度超256个就会报错

1.原因 DataBinder 中默认限制了list最大只能增长到256。 2.解决方案 1.在BaseController添加InitBinder方法&#xff0c;其余继承BaseController InitBinder //类初始化是调用的方法注解public void initBinder(WebDataBinder binder) {//给这个controller配置接收list的长…...

第45章:配置更新与应用热重载策略

第45章:配置更新与应用热重载策略 作者:DogDog_Shuai 阅读时间:约25分钟 难度:中级 目录 1. 引言2. 配置更新挑战3. Kubernetes原生配置更新机制4. 应用热重载技术5. 配置更新最佳实践...

数据库MVCC详解

MVCC 1.基本介绍 数据库&#xff1a;MySQL。【很多主流数据库都使用了MVCC&#xff0c;比如MySQL的InnoDB引擎、PostgreSQL、Oracle】 MVCC&#xff0c;全称Multi-Version Concurrency Control&#xff0c;即多版本并发控制。是数据库管理系统中的一种并发控制方法。 MVCC的…...

MySQL数据库基础篇

目录 SQL的分类 数据定义语言&#xff08;DDL&#xff09;---Data Definition Language 数据操作语言(DML) ---Data Manipulation Language 数据查询语言(DQL) ---Data Query Language 数据控制语言(DCL) ---Data Control Language 事务控制语言(TCL) --- Transaction Cont…...

Rust函数、条件语句、循环

文章目录 函数**语句与表达式**条件语句循环 函数 Rust的函数基本形式是这样的 fn a_func(a: i32) -> i32 {}函数名是蛇形风格&#xff0c;rust不在意函数的声明顺序&#xff0c;只需要有声明即可 函数参数必须声明参数名称和类型 语句与表达式 这是rust非常重要的基础…...

AI比人脑更强,因为被植入思维模型【17】万物联系思维模型

万物联系,万物,并不孤立。 定义 万物联系思维模型是一种强调世界上所有事物都相互关联、相互影响的思维方式。它认为任何事物都不是孤立存在的,而是与周围的环境、其他事物以及整个宇宙构成一个有机的整体。这种联系不仅包括直接的因果关系,还涵盖了间接的、潜在的、动态的…...

Android Compose 约束布局(ConstraintLayout、Modifier.constrainAs)源码深度剖析(十二)

Android Compose 约束布局&#xff08;ConstraintLayout、Modifier.constrainAs&#xff09;源码深度剖析 一、引言 在 Android 开发中&#xff0c;布局是构建用户界面的基础。随着 Android 开发技术的不断发展&#xff0c;Jetpack Compose 作为一种全新的声明式 UI 框架应运…...

【MySQL篇】复合查询

目录 前言&#xff1a; 1&#xff0c;多表查询 2&#xff0c;自连接 3&#xff0c;子查询 3.1&#xff0c;单行子查询 3.2&#xff0c;多行子查询 3.3&#xff0c;多列子查询 3.3&#xff0c;在from子句中使用子查询 4&#xff0c;合并查询 4.1&#xff0c;union …...

点亮STM32最小系统板LED灯

对于如何点亮板载LED灯只需要掌握如何初始化GPIO引脚&#xff0c;并改变GPIO引脚的电平即可实现点亮或者熄灭LED。 Led_INFO led_info {0}; led_info 是一个结构体变量&#xff0c;类型为 Led_INFO&#xff0c;用于存储LED的状态信息。这里初始化为 {0}&#xff0c;表示所有成…...

unsloth微调QwQ32B(4bit)

unsloth微调QwQ32B(4bit) GPU: 3090 24G unsloth安装部署 pip 安装 pip install unsloth --index https://pypi.mirrors.usrc.edu.cn/simplesource /etc/network_turbopip install --force-reinstall --no-cache-dir --no-deps githttps://github.com/unslothai/unsloth.git​…...

基于腾讯云大模型知识引擎×DeepSeek的高等职业学校单独招生二级学院考前咨询系统

1、主要思路 通过大模型知识引擎DeepSeek搭建高等职业学校单独招生二级学院考前咨询专有问答&#xff0c;使得专业老师能够更好的服务考试学生&#xff0c;有利于二级学院能够更好的进行考试宣传&#xff0c;招来优秀学子&#xff01; 2、创作过程 2.1、本地部署大模型的缺陷…...

【Linux】线程库

一、线程库管理 tid其实是一个地址 void* start(void* args) {const char* name (const char *)args;while(true){printf("我是新线程 %s &#xff0c;我的地址&#xff1a;0x%lx\n",name,pthread_self());sleep(1);}return nullptr; }int main() {pthread_t tid…...

数组作为哈希表的妙用:寻找缺失的第一个正数

数组作为哈希表的妙用&#xff1a;寻找缺失的第一个正数 大家好&#xff0c;我是Echo_Wish&#xff0c;今天我们来探讨一个经典的算法问题——“缺失的第一个正数”。听起来可能有点简单&#xff0c;但它实际上是一个非常有意思且富有挑战性的题目&#xff0c;在面试中常常会碰…...

物化视图详解:数据库性能优化的利器

物化视图&#xff08;Materialized View&#xff09;作为数据库性能优化的核心手段&#xff0c;通过预计算和存储查询结果&#xff0c;显著提升了复杂查询的效率。本文将深入剖析物化视图的工作原理、应用场景及最佳实践&#xff0c;帮助企业在合适的场景中充分发挥其性能优势。…...

【C++】类和对象(匿名对象)

匿名对象 用 类型(实参) 定义出来的对象叫做匿名对象&#xff0c;相比之前我们定义的 类型 对象名(实参) 定义出来叫有名对象匿名对象生命周期只在当前一行&#xff0c;一般临时定义一个对象当前用一下即可&#xff0c;就可以定义匿名对象。 class A { public:A(int a 0):_a…...

一文读懂 GPT 与 BERT:预训练逻辑及差异剖析

在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;预训练语言模型GPT&#xff08;Generative Pretrained Transformer&#xff09;和 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;作为杰出代表&#xff0c;备受关注。本文将…...

【算法】十大排序算法(含时间复杂度、核心思想)

以下是 **十大经典排序算法** 的时间复杂度、空间复杂度及稳定性总结&#xff0c;适用于面试快速回顾&#xff1a;排序算法对比表 排序算法最佳时间复杂度平均时间复杂度最差时间复杂度空间复杂度稳定性核心思想冒泡排序O(n)O(n)O(n)O(1)稳定相邻元素交换&#xff0c;大数沉底…...