Linux学习笔记(二):Linux权限管理

文章目录

    • 一、Linux下用户的分类
      • 1. Linux下用户分为两类:
      • 2. 这两类用户如何进行切换呢?
      • 3. 短暂提权
    • 二、何为权限
      • 1. 什么是权限
      • 2. Linux的文件后缀意义
    • 三、修改权限
      • 1. 设置文件的访问权限——chmod
      • 2. 修改文件拥有者——chown
      • 3. 修改文件所属组——chgrp
      • 4. 一个问题
    • 四、两个面试题
      • 1. 问题一:默认权限问题(权限掩码)
      • 2. 问题二:用户的文件共享问题(粘滞位)


一、Linux下用户的分类

1. Linux下用户分为两类:

  • root:超级用户
    基本不受权限的约束
  • 普通用户:我们用root新建(adduser)的用户
    受权限约束

2. 这两类用户如何进行切换呢?

在普通用户下输入su/su -
在这里插入图片描述
会让我们输入密码,输入root密码就完成切换了
在这里插入图片描述
如果要切回到普通用户,输入exit/ctrl + d:
在这里插入图片描述
无需输入密码。

如果我们要从root切换到指定普通用户,可以用su [目标用户名]完成切换,无需输入密码。
在这里插入图片描述
普通用户切换指定普通用户也亦如此,不同的是需要输入指定普通用户的密码。

注意:Linux中所有的用户都要有密码,无论是root还是普通用户。
建议:root的密码不要和普通用户的密码相同

3. 短暂提权

如果我们想要提权一条指令,可以输入sudo [指令]进行提权,第一次需要输入你的用户密码验证身份。输入一次后10~20min中内提权无需再输入密码验证。

注意:如果我们用的普通用户没有添加到系统信任白名单内(/etc/sudoers),是没有sudo的权利的,因为系统不信任你。


二、何为权限

1. 什么是权限

一件事情是否允许你做

  1. 权限认证的是身份(权限与“人(身份/角色)”有关)
    权限=具体用户+身份/角色
  • 用户分为root和普通用户
  • 身份分为:
    • 拥有者(u):文件和文件目录的所有者
    • 所属组(g):文件和文件目录的所有者所在的组的用户
      存在意义:可以给部分人给予特殊权限
    • 其他人(o):其它用户
    • 所有人(a)
  1. 权限与事物的“属性”有关
    文件的属性:可读r、可写w、可执行x

文件属性:
在这里插入图片描述
为什么没有指定其他用户呢?
除了拥有者和所属者后,剩余的就是其他用户了,所以没必要再去指定

开头的首字符是文件类型:

d:目录文件
-:普通文件(文本、可执行程序、库等)
l:软链接(类似Windows的快捷方式)
b:块设备文件(硬盘文件)
p:管道文件(用来进行通信的)
c:字符设备文件(键盘、显示器文件等)
s:套接口文件

基本权限
i.读(r):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
ii.写(w):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除、创建、更改目录内文件的权限
iii.执行(x):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
iv.“-”表示不具有该项权限

在这里插入图片描述
为了更加便捷,还可以用8进制来表示它们:

在这里插入图片描述
注意:

  1. 位置是什么含义是确定的
  2. 每一个位置只有是与否,具有指定的权限

2. Linux的文件后缀意义

Linux系统中文件名后缀对文件类型没有直接意义

也就是说:Linux不以文件后缀区分文件类型

后缀以用户需求来决定:用户使用软件,软件会要求文件后缀。

eg:gcc不能编译后缀.txt文件,要求后缀为.c。这和Linux无关,这是软件需求(用户需求)。


三、修改权限

1. 设置文件的访问权限——chmod

chmod [参数] 权限 文件名

常用选项:

  • R : 递归修改目录文件的权限

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

chmod有两种设置权限格式:

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

  • +:向权限范围增加权限代号所表示的权限
  • -:向权限范围取消权限代号所表示的权限
  • =:向权限范围赋予权限代号所表示的权限
    用户符号:
  • u:拥有者
  • g:拥有者同组用
  • o:其它用户
  • a:所有用户
    在这里插入图片描述
    ②三位8进制数字

在这里插入图片描述

2. 修改文件拥有者——chown

格式:

chown [参数] 用户名 文件名

实例:

chown user1 f1
chown -R user1 filegroup1

3. 修改文件所属组——chgrp

chgrp [参数] 用户组名 文件名

4. 一个问题


hanhe666这个用户具有进入这个目录的权限吗?

答案是没有。

因为权限在进行认证的时候,只能选择一个角色进行认证
认证顺序:
拥有者->所属组->其他


四、两个面试题

1. 问题一:默认权限问题(权限掩码)

在这里插入图片描述
为什么我们创建文件的默认权限是这样的?
为什么普通文件是664?
为什么目录文件是775?

预备知识:

  1. 默认给普通文件的起始权限是666
  2. 默认给目录文件的起始权限是777

其实这和权限掩码umask有关
在这里插入图片描述
第一位的0忽略

凡是在umask中出现的权限,不会在最终的文件权限中出现

最终权限 = 其实权限 &(~umask)

  • ~:按位取反
  • &:按位与
    在这里插入图片描述
    所以,如果我们要修改默认权限,修改umask就可以了

2. 问题二:用户的文件共享问题(粘滞位)

在这里插入图片描述
可以看到,普通用户自己的家目录是700,我们在自己的家目录下创建文件,别人是看不到的。

但我们需要多个用户进行文件数据的共享,怎么办呢?

  1. 可以用root在家目录下创建一个权限为777的共享目录,完成文件共享。
  2. 但是存在一个问题:你创建的文件,其他用户居然可以删除,这合理吗??
    注意:一个文件是否能被删除,并不由文件本身决定,而是由这个文件所在的目录决定!
  3. 如果我们去掉共享目录的w权限,会导致我们无法创建文件,那么这个共享文件就失去共享功能了。
  4. 这里我们需要用到粘滞位,可以很好地解决这个问题,实现共享功能。

粘滞位(t):是一种特殊的x权限。给目录设置,一般是共享目录,所有用户可以在该目录进行各自文件的增删查改,只允许拥有者和root能删除这个文件。

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

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

相关文章

学习alpha,第2个alpha

alphas (-1 * ts_corr(rank(ts_delta(log(volume), 2)), rank(((close - open) / open)), 6)) 先分析操作符从左到右 ts_corr: Pearson 相关度量两个变量之间的线性关系。当变量呈正态分布且关系呈线性时,它最有效。 ts_corr(vwap, close, 20)是一个计算时间序列相…

Paddle Serving|部署一个自己的OCR识别服务器

前言 之前使用C部署了自己的OCR识别服务器,Socket网络传输部分是自己写的,回过头来一看,自己犯傻了,PaddleOCR本来就有自己的OCR服务器项目,叫PaddleServing,这里记录一下部署过程。 1 下载依赖环境 1.1 …

React Native【详解】搭建开发环境,创建项目,启动项目

下载安装 node https://nodejs.cn/download/ 查看 npx 版本 npx -v若无 npx 则安装 npm install -g npx创建项目 npx create-expo-applatestRN_demo 为自定义的项目名称 下载安装 Python 2.7 下载安装 JAVA JDK https://www.oracle.com/java/technologies/downloads/#jdk24-…

NVIDIA Halos:智能汽车革命中的全栈式安全系统

高级辅助驾驶行业正面临一个尴尬的"安全悖论"——传感器数量翻倍的同时,事故率曲线却迟迟不见明显下降。究其原因,当前行业普遍存在三大技术困局: 碎片化安全方案 传统方案就像"打补丁",激光雷达厂商只管点云…

数据资产管理与AI融合:物联网时代的新征程

一、引言 在当今数字化浪潮席卷全球的时代,数据资产已成为企业和组织的核心竞争力之一。随着物联网(IoT)技术的飞速发展,海量的数据如潮水般涌来,如何高效地管理和利用这些数据资产成为了亟待解决的问题。与此同时&am…

MySQL 表的内外连接

文章目录 表的内外连接(重点)内连接外连接左外连接右外连接 表的内外连接(重点) 内连接 内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我们前面学习的查询都是内连接,也是在开发过程中使…

VTK 交互类介绍

基本概念 交互器(Interactor): 处理用户输入事件的基础类 交互样式(InteractorStyle): 定义具体的交互行为 Widgets: 可交互的UI组件,如滑块、按钮等 Picker: 用于选择场景中的对象 常用交互类 类名功能描述vtkRenderWindowInteractor渲染窗口交互器vtkInteractorStyle交互样式…

C语言动态库与静态库编译测试示例详细介绍终结篇

C语言动态库与静态库编译链接时的详细对比与示例 下面我将提供更详细的示例,并通过对比表格清晰地展示静态库和动态库的特性差异以及它们之间的各种链接关系。 ## 1. 静态库与动态库特性对比 | 特性 | 静态库(.a/.lib) | 动态…

神经网络:节点、隐藏层与非线性学习

神经网络:节点、隐藏层与非线性学习 摘要: 神经网络是机器学习领域中一种强大的工具,能够通过复杂的结构学习数据中的非线性关系。本文从基础的线性模型出发,逐步深入探讨神经网络中节点和隐藏层的作用,以及它们如何…

POI创建Excel文件

文章目录 1、背景2、创建表格2.1 定义表头对象2.2 Excel生成器2.3 创建模板2.4 处理Excel表头2.5 处理Excel内容单元格样式2.6 处理单个表头 3、追加sheet4、静态工具5、单元测试6、完整代码示例 1、背景 需求中有需要用户自定义Excel表格表头,然后生成Excel文件&a…

【分布式系统中的“瑞士军刀”_ Zookeeper】三、Zookeeper 在实际项目中的应用场景与案例分析

在分布式系统日益复杂的当下,Zookeeper 凭借强大的协调能力成为众多项目的关键组件。本篇文章将结合实际项目场景,详细介绍 Zookeeper 在电商秒杀、微服务架构、分布式配置管理以及大数据处理集群等领域的应用,以及在不同的案例场景下的具体分…

【翻译、转载】MCP 提示 (Prompts)

原文地址:https://modelcontextprotocol.io/docs/concepts/prompts#python 提示 (Prompts) 创建可重用的提示模板和工作流 提示 (Prompts) 使服务器能够定义可重用的提示模板和工作流,客户端可以轻松地将其呈现给用户和 LLM。它们提供了一种强大的方式来…

accept() reject() hide()

1. accept() 用途 确认操作:表示用户完成了对话框的交互并确认了操作(如点击“确定”按钮)。 关闭模态对话框:结束 exec() 的事件循环,返回 QDialog::Accepted 结果码。适用场景 模态对话框(通过 exec()…

如何查看电脑IP地址和归属地:全面指南

在数字化时代,了解自己电脑的IP地址和归属地信息变得越来越重要。无论是进行网络故障排查、远程办公设置,还是出于网络安全考虑,掌握这些基本信息都很有必要。本文将详细介绍如何查看电脑的公网IP、内网IP以及归属地信息,并提供常…

基于python生成taskc语言文件--时间片轮询

目录 前言 utf-8 chinese GB2312 utf-8 排除task.c chinese GB2312 排除task.c 运行结果 前言 建议是把能正常工作的单个功能函数放到一起(就和放while函数里的程序一样),程序会按顺序自动配置。 不同的格式已经对应给出。 utf-8 impo…

Docker手动重构Nginx镜像,融入Lua、Redis功能

核心内容:Docker重构Nginx镜像,融入Lua、Redis功能 文章目录 前言一、准备工作1、说明2、下载模块3、Nginx配置文件3、Dockerfile配置文件3、准备工作全部结束 二、构建镜像三、基于镜像创建容器三、lua脚本的redis功能使用总结 前言 ⁣⁣⁣⁣ ⁣⁣⁣⁣…

DeepSeek+Excel:解锁办公效率新高度

目录 一、引言:Excel 遇上 DeepSeek二、认识 DeepSeek:大模型中的得力助手2.1 DeepSeek 的技术架构与原理2.2 DeepSeek 在办公场景中的独特优势 三、DeepSeek 与 Excel 结合的准备工作3.1 获取 DeepSeek API Key3.2 配置 Excel 环境 四、DeepSeekExcel 实…

解决Vue2------You may use special comments to disable some warnings.问题

问题截图 解决办法 打开项目中.eslintrc.js在rules中,添加以下代码,并extends的 vue/standard注释掉 space-before-function-paren: 0, semi: off, quotes : off, comma-dangle : off, vue/comment-directive: off

数据集-目标检测系列- 牙刷 检测数据集 toothbrush >> DataBall

数据集-目标检测系列- 牙刷 检测数据集 toothbrush >> DataBall DataBall 助力快速掌握数据集的信息和使用方式。 贵在坚持! * 相关项目 1)数据集可视化项目:gitcode: https://gitcode.com/DataBall/DataBall-detections-100s/over…

解决:前后端跨域请求

目录 关于跨域请求出现的原因 同源策略 示例(跨域问题) 如何解决跨域请求 方法一:配置后端服务器以允许跨域请求(后端) 方法二:使用代理服务器(前端) 一 ,使用aja…