随笔 - 746  文章 - 0  评论 - 39  阅读 - 79万

linux:怎么知道当前登录是 su 过来的? 还是真实登录上来的?

问题,如本文题目

 

概念:effective id, real id

  effective id:有效id:即当前的用户id:通过【id 或者 whoami】查看

  real id :原始id(实际id):即当前这个会话的登录用户id:可以通过【who + tty】来查看

 

那回到本文问题,就很简单了:

  运行who、whoami 对比看看:如果相同就是登录上来的;如果不同,就是su切换过来的

  可能需要结合tty的终端设备信息来辅助判断

 

另外的方法,直接通过该tty终端设备来反向查询:

  1. tty 查到终端设备,假设为T
  2. lsof  T 可以差的shell进程号,假设为P
  3. cd /proc/P
  4. 然后,可以查询:loginuid、status 2个文件,一对比uid的值,就能知道了:)

 

posted on   jinzhenshui  阅读(173)  评论(0编辑  收藏  举报
编辑推荐:
· 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:语法:数据类型细节

点击右上角即可分享
微信分享提示