Linux权限引发的"血案"

基于 YOLOv26 的 PCB 板缺陷检测:工业级视觉实战 本文提出了一种基于YOLOv26的PCB板缺陷检测系统,通过深度学习技术实现对PCB板缺陷的自动化检测。系统能够识别短路、开路、焊点不良等8种常见缺陷,具有高精度、多类别分类和实时推理等优势。文章详细介绍了系统架构,包括数据采集、预处理、YOLOv26模型检测和后处理模块。在代码实现部分,给出了环境配置、数据预处理与增强的具体方法,使用Albumentations库进行图像增强处理。该系统为电子制造业提供了高效、准确的PCB质量检测解决方案,显著提升了检测效率和准确性。 阅读详情

前言

使用Linux的时候是否有过权限不足的烦恼?rwx对于文件和目录到底有什么作用?Linux又是如何确定进程是对于文件的访问权限的?本文将解决上面的疑问,有了上述基础,再介绍Linux的重要API–exec

权限对于linux的重要性

  1. 解读rwx

文件:
r(read):可以读取文件的内容
w(write):可以编辑/修改文件内容(不包含删除)
x(execute):可执行权限
目录:
r:表示具有读取目录结构列表的权限,所以如果具备r权限,表示可以查询该目录下文件名数据,比如执行ls可以将目录内容列表显出出来,但是如果没有x权限,那么详细信息还是读取到,只会以???显示
w:写权限对于目录意义重大,表示具备修改目录结构的能力,如:

  • 建立新的文件与目录
  • 删除已存在的文件与目录(不论该文件的权限如何)
  • 将已存的文件和目录进行更名
  • 修改该目录内的文件/目录位置
    x:目录的执行权限代表能否进入该目录,比如cd指令是否能成功就看是否具备x权限了。

举例:
这里写图片描述

2.特殊文件权限:SUID/SGID
当s这个标志出现在文件拥有者的x权限上时,例如/usr/bin/passwd这个档案的权限是-rwsr-xr-x,此时就被成为Set UID,那么SUID的权限对于一个文件的特殊功能是什么呢,如下:

  • SUID权限仅对二进制程序有效
  • 执行者对于该程序需要具有x的可执行权限
  • 本权限仅在执行该程序的过程中有效
  • 执行者将具有该程序拥有者的权限
    举例:
    这里写图片描述
    示意图如下:
    这里写图片描述

当s标志出现在文件拥有者的x位置时为SUID,那么s出现在群主的x位置时称为SGID,与SUID不同的是,SGID可以针对文件或者目录设定。
对于文件来说,SGID有如下功能:

  • SGID对二进制程序有用
  • 程序执行着对于该程序来说需要具备x权限
  • 执行者在执行的过程中将会获得该程序群组的支持

对于目录来说,当目录设定了SGID权限以后,他将具有如下功能:

  • 用户如果对于目录具有rx权限,该用户能够进入此目录
  • 用户在此目录下的有效群组将变成该目录的群组
    2.账号和权限
    Linux系统上面的用户如果需要登入主机取得shell环境来工作,他需要如何进行呢?需要利用tty1-tty7终端输入账号和密码,得到账号和密码以后系统如何处理呢?过程如下:
  • 先在/etc/passwd里面查看是否有输入的账号?没有退出,如果有的话就将该账号对应的UID和GID(在/etc/group中)读出来,另外账号的主目录与shell设定也一并读出;
  • 下面则是核对密码,linux进入/etc/shadow里面找到对应的账号与UID,然后核对密码

/etc/passwd文件结构分析:
这个文件的结构是这样的,每一行代表一个账号,有几行就代表有几个账号在你的系统中。每一行使用“:”分割,如下:
账号:密码:UID:GID:用户信息说明/主目录/shell
这里写图片描述

/etc/shadow文件结构
每行的结构如下:
账号名称/密码/最近更改密码的日期/密码不可被更动的天数/密码需要重新更动的天数/密码需要变更期限前的警告天数/….

3.Linux进程的权限
在Linux系统中,创建进程的时候内核会创建一个进程描述符,描述符中的uid,gid等字段会规定进程的权限。每个二进制可执行文件都有三组权限(user/group/others),所以不同的使用者身份执行这个程序时,系统给予的权限也不相同。举例来说,我们可以touch一个空档案,当root执行这个touch指令时,他取得的是UID/GID=0/0权限,而当普通用户tom(UID/GID=501/501)执行这个touch时,他的权限就跟root不同。
这里写图片描述

举个更为常见的例子,我们使用linux操作系统的时候,首先要做的就是登陆操作,然后取得shell,我们的shell是bash,即/bin/bash,那么同时间很多人登陆执行的都是/bin/bash,不过每个人取得的权限是不同的

在Linux内核中有个credential(信任状)的概念,即存储在task_struct中的uid等信息,当某个进程试图访问一个文件时,VFS总是根据文件的拥有者和进程的信任状所建立的许可权检查访问的合法性。
这里写图片描述

exec实现后面再补充

UniApp 覆盖安装后首次进入 APP pages.json 不生效的解决方案 通过以上步骤,解决了缓存问题导致的首次加载异常。此方案的关键在于强制更新文件名,从根本上避免旧缓存的干扰。 阅读详情

相关推荐

手把手教你用Deep Single-Image Portrait Relighting实现人像光影重塑(附GitHub代码)

本文提供了一份详细的实战指南,手把手教你利用Deep Single-Image Portrait Relighting技术实现人像光影重塑。文章从环境搭建、核心原理拆解出发,逐步指导构建简易重光照流程,并探讨了使用预训练模型进行效果优化的进阶方法,最后附上避坑指南与常见问题排查,帮助开发者快速上手这一AI图像处理技术。

weixin_29065015的博客 316

Linux 安全 - Credentials

Linux 安全 - Credentials简介

小立仔 1619

超详细!动态规划详解分析(典型例题分析和对比,附源码)

为啥要使用动态规划?什么时候使用动态规划?以下是我的一些理解和心得,如果你感兴趣,就接着往下看吧。 对您有帮助的话记得给我点个赞哟! 动态规划的基本思想 动态规划(Dynamic Programming,DP)算法通常用于求解某种具有最优性质的问题。在这类问题中,可能会有许多可行解,每一个解都对应一个值,我们希望找到具有最优值的解。 动态规划算法与分治法类似,其基本思想也是将待求解的问题分解成若干个子问题,先求解子问题,然后从这些子问题的解中 得到原有问题的解。与分治法不同的是,动态规划经分解后得到的子问题

qq_44398094的博客 8万+

linux cred管理

I.credential管理 linux系统中,一个对象操作另一个对象时通常要做安全性检查。如一个进程操作一个文件,要检查进程是否有权限操作该文件。 linux内核中,credential机制的引入,正是对象间访问所需权限的抽象;主体提供自己权限的证书,客体提供访问自己所需权限的证书,根据主客体提供的证书及操作做安全性检查。 证书管理术语: 客体:指用户空间程序直接可以操作的系统对象,如进

永无止境 8069

AC7811无感FOC实战:从开环到闭环的电机控制调试全记录

本文详细记录了基于国产AC7811芯片实现无感FOC电机控制的全过程。从硬件软件环境搭建、开环I/F启动调试,到滑模观测器参数整定,再到平滑切入闭环及双环PID调节,提供了完整的实战步骤与参数调试心法。文章重点分享了无感控制从开环到闭环切换的关键技巧与常见问题排查清单,为工程师提供了一份避坑指南。

kotlin6android的博客 714

波分复用-Zblock仿真

Z-BLOCK是一种用于光通信模块的光学元件,其核心结构是在玻璃块一侧贴有4个特定波长滤光片,另一侧镀有反射膜和增透膜。光信号在内部呈现Z字形反射路径,实现波长分离。文章以可见光LED为例,在ZEMAX中演示了非序列模式下的建模过程,重点介绍了滤光片和膜层的参数设置方法。需要注意的是,入射角度需根据玻璃折射率、通道高度和厚度精确计算,否则可能导致光泄漏。该建模方法同样适用于光通信中的光纤激光器系统。

Zhaxibamao的博客 1759

linux登录认证源码,图解如何在Linux上配置git自动登录验证

记录一下配置git操作远程仓库时的自动验证,效果如下图:本文介绍的是Linux下的配置。Windows上默认已经启用凭证存储和自动验证(依靠wincred实现,以后会使用GCM-Core)。准备工作首先需要Linux系统上安装了dbus或者是gnome-keyring(依赖于dbus),如果可能的话需要安装libsecret,这是一个更现代的用于凭证管理的库。因为我们需要借助dbus的servic...

weixin_30788095的博客 561

ArcGIS Pro 3.0实战:5分钟搞定GDB批量转SHP的Python脚本(附常见错误修复)

本文详细介绍了在ArcGIS Pro 3.0中使用Python脚本将地理数据库(GDB)中的要素类批量转换为Shapefile(SHP)格式的实战方法。文章提供了从基础到增强的完整脚本,重点解决了中文路径报错、字段名截断和属性表乱码等常见问题,并分享了错误处理与编码修复技巧,帮助用户高效、准确地完成数据格式转换与交换。

happy2的博客 768

Linux Process Credentials

Process Credentials包含一系列的ID:real user ID & real group IDeffective user ID...

Linux知识积累 467

LED灯闪烁实验:代码集成

LED灯闪烁实验已经全部完成,在该实验中使用了较多的工具链,涉及底层软件、建模、软件编译等。首先,通过STM32CubeMX工具进行STM32底层软件配置,可以大大减少手写代码的工作量。另外由于做了可视化,也降低了STM32的上手难度,提升效率。利用Simulink建模,可以在PC环境下验证应用层算法的正确性而不依赖于具体控制器,实现应用层算法和底层软件、控制器硬件的解耦。另外,图形化的建模方式也更加有利于开发者思考与分析,大量的封装库文件也可以降低开发的工作量。

u013288925的博客 370

反应动力学仿真软件:Kintecus_(3).Kintecus安装与配置

在本节中,我们将详细介绍如何安装和配置Kintecus反应动力学仿真软件。Kintecus是一款功能强大的工具,用于模拟和分析化学反应的动力学过程。正确安装和配置软件是开始使用它的第一步。我们将分步骤介绍软件的安装过程,并提供一些基本配置的示例。

kkchenjj的博客 1556

Git配置credential helper,并使用Http/Https传输

Git配置credenti helper,实现不需要反复输入用户名密码http/https同步

Caesar Zhang的专栏 8万+

【AUTOSAR-COM】-5.2-“Deadline Monitoring超时监控”-2-基于IPdu实现

目录 1 在CFG中配置Deadline Monitoring超时监控 1.1 参数说明 1.2 生成代码差异 2 通过一段测试代码看Deadline Monitoring超时监控 3 使用CAN盒观察Deadline Monitoring实际测试效果 3.1 Case 1:ECU开始工作时,没有收到Frame 3.2 Case 2:ECU工作中,接收的Frame丢失、 4 小结 5 结尾 关键字: DM=Deadline Monitoring超时监控 ComFirstTime...

「汽车电子助手」的博客 1788

Linux中ls命令的详解(一道选择题引发的“血案”)

做笔试题的第二天,做第一道选择题就gg了,自己还是个菜鸟啊,以下的内容均为自己搜索整理,转载请标明出处谢谢。 原题: 用ls-al 命令列出下面的文件列表,(  )文件是符号连接文件 A. -rw-rw-rw-  2  hel-s  users  56  Sep  09  11:05  hello B. -rwxrwxrwx  2  hel-s  users  56  Sep  09  1

daimous的博客 1557

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

LibreOffice 安装引发的血案

于是开始更新更新有报错GPG error: http://security.ubuntu.com/ubuntu focal-security InRelease: Couldn't create temporary file /tmp/apt.conf.HbA52m for passing config to apt-key。解压后安装 dpkg -i ./LibreOffice_7.5.4.2_Linux_x86-64_deb/DEBS/*.deb。但是在使用的时候出现了以下错误。

qq_33540705的博客 3739

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

nginx版本问题引发的血案

发现一个问题,在post请求发送完成之前,nginx就返回500错误了,也就是说nginx还没来得及讲请求发给uwsgi,错误就发生了,于是乎赶紧去查看nginx日志,tmd,见鬼了(到这里已经折腾了好几天了)万不得已,我还有最后一招杀手锏,​ pycharm用的是自带的web容器,而服务器用的是Nginx+uwsgi,怀疑是web容器的问题。2、在服务器上部署pycharm开发环境进行测试,发现也没有问题,这样问题的范围就缩小了。最近碰到一个问题,折腾了快一周时间,今天终于解决了,将过程详细记录一下。

jiafeitutu的博客 209

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

一次修改limits.conf 引发的血案

起因: 在重启nginx 过程中,发现有报 open file 限制的警告,于是没考虑太多,直接去修改/etc/security/limits.conf 修改前 * soft nofile 65536 * hard nofile 65536 修改后 * sof...

zimuKobby的博客 4011

DEVICE_ATTR设置0777引发血案

这个宏我们在内核里面使用非常频繁,这个宏的作用可以抛出sys设备节点给用户使用。用户可以读写sys/class下面的文件节点,以达到控制内核驱动的功效。比如,像这样的设备节点weiqif...

嵌入式Linux 1924

root权限引发的/sbin/init不存在故障的血案

环境:linux 5.4服务器,ORACLE 10.0.2.4数据库案情:上周某数据库DBA做迁移操作时说突然连不上了,向可能有ROOT权限的人确认是否突然修改了密码。可也太诡异了,这台数据库服务器所在的区域安全等级较高,而且运行了若干年从来没有任何问题。刚刚root放给新入职的DBA就出了问题。还好有堡垒主机,于是立即确认堡垒主机的动作,没有发现有修改ROOT密码的命令。惊了一声冷汗,难不成被*...

weixin_34409741的博客 1904

由安装yarn引发的血案

今天在mac上搞vuepress的时候,用npm安装的出现各种问题(和webpack3.x出现的问题),所以需要安装yarn。 我用brew命令安装的时候,报错,没权限,提示用下面语句设置权限: sudo chown -R $(whoami) /usr/local 输入之后提示: chown: /usr/local: Operation ...

weixin_34233618的博客 83

一段网络引发的血案(Linux网络设置)

文章目录查看网络配置查看网络接口信息 ifconfig测试网络连接1.引入库2.读入数据设置网络地址参数 查看网络配置 查看网络接口信息 ifconfig 查看所有活动的网络接口信息 执行 ifconfig命令 查看指定网络接口信息 ifconfig 网络接口 测试网络连接 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns impo.

Alterego_的博客 1098

【linux】转载:一次修改limits.conf 引发的血案

前言: presto服务挂掉,在重启presto 过程中,发现有报 open file 限制的警告,于是没考虑太多,直接去修改/etc/security/limits.conf 修改前 * soft nofile 65536 * hard nofile 65536 修改后 * soft nofile 6553600 * hard nofile 6553600 保存退出,然后过了一段时间,发现节点无法登

Mrerlou的博客 1893

从Win到Linux:你的.sh脚本为何‘水土不服’?一个换行符引发的‘血案’与终极解决指南

本文深入分析了Windows与Linux系统下.sh脚本因换行符差异导致的`No such file or directory`问题,提供了从CRLF到LF转换的多种解决方案,并扩展了权限管理、解释器路径等常见陷阱的排查方法,帮助开发者彻底解决跨平台脚本执行问题。

weixin_29290379的博客 402

mysql backlog_一次优化引发的血案

前些天一个Nginx+PHP项目上线后遭遇了性能问题,于是打算练练手,因为代码并不是我亲自写的,所以决定从系统层面入手看看能否做一些粗线条的优化。首先,我发现服务的Backlog设置过小,可以通过ss命令查询Send-Q来确认:shell> ss -lnRecv-Q Send-Q Local Address:Port Peer Address:Port0 511 ...

weixin_39958366的博客 373

业务中台-- too many open files引发的血案

背景介绍 系统Load突然飙升到峰值,业务服务也因失败率过高而相继报警,业务系统大有雪崩之势。 一、产生原因 经排查确定是因为中台热加载业务共享模型后文件删除没有释放句柄导致服务器出现了too many open files的错误。 too many open files是Linux系统中常见的错误,从字面意思上看就是说程序打开的文件数过多,不过这里的files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄(handle),这个错误通.

一个天秤座的架构师 2万+
上一篇: Linux内核的进程切换(上)
下一篇: Makefile容易犯错的语法
OS技术解密
博客等级 码龄16年 3761粉丝 189原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值