linux:怎么知道当前登录是 su 过来的? 还是真实登录上来的?
问题,如本文题目
概念:effective id, real id
effective id:有效id:即当前的用户id:通过【id 或者 whoami】查看
real id :原始id(实际id):即当前这个会话的登录用户id:可以通过【who + tty】来查看
那回到本文问题,就很简单了:
运行who、whoami 对比看看:如果相同就是登录上来的;如果不同,就是su切换过来的
可能需要结合tty的终端设备信息来辅助判断
另外的方法,直接通过该tty终端设备来反向查询:
- tty 查到终端设备,假设为T
- lsof T 可以差的shell进程号,假设为P
- cd /proc/P
- 然后,可以查询:loginuid、status 2个文件,一对比uid的值,就能知道了:)
分类:
Linux
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2015-06-04 Ubuntu 使用文件 casper-rw 镜像文件 保存变更内容
2009-06-04 Mysql:语法:字符集、排序规则
2009-06-04 Mysql:函数、操作符
2009-06-04 Mysql:语法:数据类型细节