SetUid的权限问题

(三)Linux系统中的日志服务 目录​###1.journalctl命令的用法### ###2.永久保存日志的方法######3.rsyslog######4.日志采集定位######5.设定日志采集格式#####6.日志同步发送######7.timedatectl命令的用法######8.日志同步服务####实验环境 两台可以相互通信的主机 服务名称:systemd-journald.sevice journalctl 默认日志存放路径: /run/log systemctl status systemd-journald 阅读详情
1什么是SetUID
我们知道,在Linux的命令行下执行“ps -aux”命令时,就会列出当前系统中的所有进程,在其中可以看到每个进程都和用户的真实id关联,实际上,Linux中的每个进程还跟一个称为有效用户id(set User id)紧密关联。前者用于表示该进程由那个用户控制,后者用于为新建立的文件分配所有权,检查文件访问许可等操作,同时有效用户为该文件的所有者。linux系统内核允许一个进程以调用一个SetUID程序(或显示执行SetUID系统调用)的方式,来改变其自身的有效用户id。
2如何配置SetUID权限
在linux中,不管是Root用户还是普通用户,都可以使用“Password”命令来更改自身的密码。但是,Linux中的密码通常是保存在“/etc/paswd”和“/etc/shadow”文件中,这两个文件对系统安全至关重要,因此只有Root用户才能对其执行读写操作。以管理员的身份登陆系统,在Linxu提示符下执行“ls /etc/passwd /etc/shadow”命令,在返回信息中可以看到普通用户对上述这两个文件并没有写权限,因此从文件属性的角度看,普通用户在更改自身密码时,是无法将密码信息写入到上述文件中的,哪么用户是怎样成功的更改密码的呢?实际上,问题的关键不在于密码文件本身,而在于密码更改命令“passwd”。在提示符下执行命令“ls /usr/bin/passwd”,在返回信息中的文件所有者执行权限位上显示“S”字样,表示“passwd”命令具有SetUID权限,其所有者为Root,这样普通用户在执行“passwd”命令时,实际上以有效用户root的身份来执行的,并具有了相应的权限,从而将新的密码写入到“/etc/passwd”和“/etc/shadow”文件中,当命令执行完毕,该用户的身份立即消失。如何设置SetUID权限呢?使用“chmod”命令即可为指定文件设置SetUID权限,例如“chmod 4xxx filename”命令,取消SetUID权限的命令为“chmod xxx filename”。类似的,执行“chmod 2xxx filename”命令可以设置SetGID权限,使用“chmod xxx filename”命令即可取消SetGID权限,如果执行“chmod 6xxx filename”命令,即可同时为指定文件设置SetUID和SetGID,执行命令“chmod 0xxx filename”,即可同时取消指定文件的SetUID和SetGID权限。例如以Root用户登陆系统,执行“chmod 0511 /usr/bin/passwd”命令,就可以取消“passwd”命令的SetUID权限,这样普通用户就无法修改自己的密码了。
3SetUID权限的安全性
使用SetUID可以灵活的调整所有文件所有者权限,但是也为系统的安全性带来了隐患。如果Root用户为指定的程序文件配置过大的SetUID权限,那么就会为黑客或者非法用户打开了侵入系统的大门。例如在Linux中可以使用“vi”命令来编辑文件,但是,对于普通用户而言,当其试图使用命令“vi /etc/shadow”来修改密码文件时,系统就会弹出“/etc/shadow : Permission Denied”的警告提示,从而禁止其对密码文件的非法修改。但是,如果在Root用户环境中执行“which vi”命令,就可以看到“vi”命令实际上是“vim”命令的别名,其真实路径为“/usr/bin/vim”,这样执行命令"chmod 6755 /usr/bin/vim",就可以将“vi”命令的所有者更改为Root,这样在普通的用户环境中,就可以使用“vi”命令来编辑任何文件(例如“/etc/shadow”),这样,即使是普通用户也可以将密码文件清空,从而实现无密码登陆Linux,给系统的安全带来的威胁不言而喻。因此,对可能给系统安全带来危害的程序来说,应该尽量不要随意为其配置SetUID权限。
4 如何禁用SetUID权限
对于存放在敏感数据的分区而言,有时可能希望禁用SetUID权限设置功能。例如对"/home" 分区禁用SetUID权限,可以找到修改其配置文件“/etc/fstab”, 执行命令“vi /rtc/fstab”,可以看到“LABEL=/home /home ext3 defaults 1 2”等数据,我们只需在上述“default”关键字的后面添加“nosuid” 关键字即可,例如使用“vi”命令将其修改为“LANBEL=/home /home ext3 default , nosuid 1 2”,之后执行命令“mountoremount /home”,这样即使对“/home”分区上的任何可执行文件配置了SetUID权限,也是无效的。这样就在很大程度上保护了系统的安全。
Linux权限管理— 文件特殊权限SetUID 这三个文件不是太安全,是Linux系统应对特殊情况所准备的权限,给Linux系统的一些特殊命令提供的。然后在定期或者不定期的执行该脚本,存入一个临时文件,然后拿这个临时文件和上面的模版文件进行对比,如果临时文件和模板文件是一样的,证明系统中没有出现新的。(1)只有可以执行的二进制程序(自己写的脚本也可以,只要是执行文件就行)才能设定SUID权限。还有一点,我们之前说过,普通用户是可以修改自己的密码的,但是我们查看下面两个文件,,也就是说普通用户对这个文件是没有任何操作权限的,不能看也不能打开,也不能写。 阅读详情

相关推荐

Coze离线部署实战:从镜像拉取到服务启动的完整避坑指南

本文提供了一份详尽的Coze平台离线部署实战指南。针对无外网的生产环境,详细讲解了从Docker镜像拉取、打包传输到内网服务器加载的完整流程,并重点剖析了使用docker-compose启动服务时常见的配置错误与权限问题,如文件挂载缺失、网络绑定错误等,提供了经过验证的避坑解决方案,旨在帮助运维和开发人员一次性成功部署。

weixin_29310605的博客 326

Linux用户和权限之二

作者:姚远 Oracle ACE。

姚远OracleACE的博客 1566

保姆级教程:Windows下用GDC-Client下载TCGA数据,从环境变量配置到成功下载

本文提供Windows平台下使用GDC-Client下载TCGA数据的完整教程,从环境变量配置到成功下载。详细介绍了GDC-Client工具的安装、系统环境变量设置、配置文件优化以及数据下载实战技巧,帮助生物信息学研究者高效获取TCGA数据库中的癌症基因组数据。

weixin_42520025的博客 403

权限管理-文件特殊权限-SetUID

1.SetUID的功能 实现SetUID功能的前提条件 (1) 只有可执行的二进制程序才能设定SUID (2) 命令执行者要对该程序拥有x(执行)权限 SetUID的功能 (1) 命令执行者在执行改程序时获得该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属组) (2) SetUID权限只在该程序中有效,也就是说身份改变只在程序执行过程中有效。 小提示: 命令的执行者一般是普通用户 举个栗子: passwd命令拥有SetUID权限,所以普通用户可以修改自己的密码 这个passwd为什

董坤的博客 4121

嘉立创封装图下载后必做的3步优化(附批量删除机械层技巧)

本文针对从嘉立创下载的封装图,系统讲解了三步核心优化流程,以解决其直接使用时的常见问题。重点介绍了如何高效批量删除冗余的机械层,避免制造错误;并详细说明了规范丝印层间距、统一焊盘命名等关键步骤,帮助工程师将第三方封装转化为可靠、合规的设计资源,从而提升PCB设计效率与文件质量。

weixin_29227585的博客 431

Cesium实战:全球海洋动态水面与自定义区域波浪效果实现

本文详细介绍了在Cesium中实现全球海洋动态水面与自定义区域波浪效果的实战方法。通过解析核心概念Primitive与Geometry,并深入讲解Water材质的关键参数调节,指导开发者快速创建逼真的动态海洋。文章重点阐述了如何利用多边形坐标定义不规则图形区域,实现精准的局部水域波浪效果,并提供了性能优化与视觉提升的实用技巧。

weixin_29256771的博客 501

哪位大神指点下,这段代码问题出在哪里!

这段代码是用九齐NY8写的,目的是现实按键开关LED,但是下载到ICE单击按键,没有任何反应,附上原理图如下: #include <ny8.h> #include <stdint.h> #include "ny8_constant.h" #define UPDATE_REG(x) __asm__("MOVR _" #x ",F") unsigned char Trg; //全局变量“按键触发” unsigned char Cont; //全局变量“连续按下” __s

jimp2020的博客 1704

1. SAP Fiori Elements 开发环境的搭建和开发准备工作

本文介绍了本地使用 Visual Studio Code 进行 Fiori Elements 开发所需要安装的这个扩展包里6个能够提高 Fiori Elements 应用开发效率的扩展。在本教程后续步骤里我们会通过实际的例子介绍这些 Visual Studio Code 扩展的详细用法。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 3451

这段代码确实有问题,但是可以不用改。

前几天和团队小伙伴一起 CodeReview 的时候,看到一段有问题的代码,讨论了几句之后,大家很快就达成了一个一致的结论:这段代码确实有问题,但是可以不用改。听起来确实是一个很矛盾的结论,所以带着大家一起分析一波。看完之后你可能会发现:这样的代码,可能在你的项目中也有很多,但是也可以不用改。

m0_69632475的博客 514

【Visual Assist X助手安装问题】Visual Assist X无法安装(双击安装包没反应) | Visual Assist X安装后在Visual Studio中找不到(亲测有效)

本文分享了Visual Assisant X助手的安装与使用问题的详细解决办法,因为网上搜集的信息比较少,所以有一定的参考价值。考虑到很多开发新手会遇到上述问题,可能对Windows系统不熟悉,所以相关操作步骤讲解的很详细!

dvlinker的技术专栏 6万+

【立创EDA-PCB设计基础】6.布线铺铜实战及细节详解

本文进行布线铺铜实战及详解布线铺铜的细节

嵌入式阿齐Archie 4万+

AI工具辅助解释代码和改写文章

AI工具是个很好的东西,希望你们都好好用上,但也需要自己花时间去看看,不要直接复制粘贴就完事了。毕竟只需要苦一次,就能顺利毕业了,希望花点心思哈!更多毕设知识内容请关注。

程序员小嗨 1255

OpenClaw用户必看:每天0成本使用OpenClaw!NVIDIA NIM免费大模型接入教程

🚀 OpenClaw接入NVIDIA NIM免费API!glm5、minimax-m2.5等大量模型任选,0成本升级AI助手!💰

XiaoqiangClub的博客 5575

为什么这段代码会阻塞?

腾讯内网上,一位提问者对一段代码为什么会阻塞发出了疑问,该问题讨论跨度约一周,探讨过程中,出现了许多由于不够理解 channel 而产生的问题,非常经典。本文结合内网上的讨论和 channel 的原理,来帮助大家加深对于 channel 的理解。

IT界那些事儿 6084

假人有限元模型

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

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

求问大佬 这段代码哪里出问题了

运行结果都没问题,提交系统就是答案错误,看不出来哪里有问题了。

weixin_52093347的博客 476

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【Linux文件权限管理】关于SetUID、SetGID的说明

1、什么是SetUID 我们知道,在linux的命令行下执行“ps”命令时,就会列出当前系统中的所有进程,在其中可以看到每个进程都和用户的真实id关联,实际上,Linux中的每个进程还跟一个称为有效用户id(set User id)紧密关联。前者用于表示该进程由那个用户控制,后者用于为新建立的文件分配所有权,检查文件访问许可等操作,同时有效用户为该文件的所有者。linux系统内核允许一个进程以调

阿强的一亩三分地,一分耕耘一分收获 2486

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Linux——特殊权限管理

Linux中的特殊权限(setuid、setgid、sticky bit)扩展了基本的文件权限机制,提供了更精细的控制。通过合理使用特殊权限,可以增强系统功能与安全性,但需严格遵循最小权限原则。例如:共享目录设置SGID后,所有新建文件自动归属同一组。:用于目录,用户仅能删除自己的文件(即使有写权限)。:避免随意设置,尤其是对root所属文件。:脚本的SUID可能被忽略,建议通过sudo替代。:允许用户以文件所有者的权限执行文件。:新创建的文件/目录继承父目录的组。:以文件所属组的权限执行。

Eternal_love__的博客 760

Linux 权限管理

简介linux 的各种权限管理命令

zzj的博客 793

linux 设置setuid权限,从零开始学习Linux(二十五):文件特殊权限之SetUID

文件的特殊权限主要分为SetUID、SetGID、Sticky BIT三种。本章节主要是学习SetUID。1、SetUID的功能只有可以执行的二进制程序才能设定SetUID权限(非可执行二进制文件并非不能设定,而是设定了也无意义);命令执行者要对该二进制程序拥有x(可执行)权限;命令执行者在执行该二进制程序时获得程序文件的所属者身份;SetUID权限只在改程序执行过程中有效(身份改变只是在程序执行...

weixin_29195615的博客 2274

Linux中的SetUid和capability权能机制

Linux中的SetUid和capability权能机制

zhaominyong的专栏 1758

权限管理--文件特殊权限—SetUID

1、SetUID的功能只有可以执行的二进制程序才能设定SUID权限命令执行者要对该程序拥有x权限命令执行者在执行该程序时获得该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主)。SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效。2、举例:passwd命令拥有SetUID权限,所以普通用户可以修改自己的密码,查询"ll /usr/bin/passwd"可以发现passwd权限为-rwsr-xr-x 用户权限为s,即在执行passwd命令时变身为属主将执行内容写入/et

qq_46363011的博客 1112

Chmod 特殊权限举例

比如,在安装某些服务如PostgreSQL时,服务的初始化脚本(如initdb)可能需要以超级用户(root)的权限运行,以执行一些系统级的操作。在这种情况下,如果你设置 initdb 脚本为 `chmod 4777`,那么即使普通用户执行该脚本,脚本也会以root用户的权限执行。假设你在学校或公司有一个共享目录,该目录需要让加入特定组的所有用户都能读写文件,并且新创建的文件应该继承该目录的组。设置该目录为 `chmod 2755`,可以确保所有创建的文件的组ID(GID)与目录相同,便于组内成员共享。

qq_38827988的博客 481

Linux笔记——SetUID,SetGID,黏着位权限

Linux笔记——SetUID,SetGID,黏着位权限

weixin_42638731的博客 1523

浅议Linux中的SetUID权限

浅议Linux中的SetUID权限 (2011-01-14 13:16) 1什么是SetUID      我们知道,在linux的命令行下执行“ps”命令时,就会列出当前系统中的所有进程,在其中可以看到每个进程都和用户的真实id关联,实际上,Linux中的每个进程还跟一个称为有效用户id(set User id)紧密关联。前者用于表示该进程由那个用户控制,后者用于为

1988

linux set uid权限数学,setuid权限

SetUID只针对具有可执行权限的文件有效,具有x权限的文件被授予了SetUID会显示标记为S ,这个权限将使其他用户在执行这个文件时以文件所有者的身份执行。在Linux系统中每个普通用户都可以更改自己的密码,这是合理的设置。问题是:用户的信息保存在文件/etc/passwd中,用户的密码保存在文件/etc/shadow中,也就是说用户更改自己密码时是修改了/etc/shadow文件中的加密密码,...

weixin_29000729的博客 439
上一篇: chmod修改权限
下一篇: X86反汇编速成班(条件指令,分支指令、重复指令、寄存器等)
code_AC
博客等级 码龄12年 255粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值