Linux如何取消用户登入的信息

问题描述

我在使用telnet的时候发现当利用telnet登入设备的是后设备会输出一段用户登入的打印,这个打印在有些特殊情况下我不希望打印如何解决?
在这里插入图片描述

解决办法

  1. 找到这个文件busybox\loginutils\login.c
  2. 找到login_main函数
  3. 找到这一行syslog(LOG_INFO, “root login%s”, fromhost);
  4. 删掉即可,以后shell登录都没打印了

如果仅仅想解决这个问题的话上面已给出方法直接操作即可,如果想了解定位搜索过程的往下看,我认为定位过程更值得一看,我也是百度了好久也没搜索到,打算自己查,自己查代码也花了很久才定位到位置。

步骤

排除telnetd

一开始我以为是telnetd的输出,因为必须telnetd进程开启后telnet才能连上

  1. 将telnetd进程开启 将标准输出和标准错误重定向 测试

  2. 不理解这段话的看这里传送门设备描述符章节

    在这里插入图片描述

  3. 开启telnetd后再次telnet登入上去发现串口还是有登入信息打印,而且telnetd进程也没有打开串口的设备描述符,排除telnetd的打印
    在这里插入图片描述

login

在登入telnet的时候忽然想起来ssh登入的时候也有类似的打印后来想起很有可能login可执行程序打出来的

  1. 测试login的打印
  2. 直接在串口下敲login命令输入用户名和密码发现诶对流,这就对了,那么石锤login打出来的
    在这里插入图片描述

busybox

  1. 既然定位到是login打出来的那必须去buybox下面去搜索
  2. 分析这段打印Jan 1 01:10:19 login[234]: root login on ‘console’
  3. 一个是时间一个是进程号 用户名 console 这些肯定不能用作搜索条件
  4. 那么只能是login[ 和login on 搜索
  5. 搜索这两个发现在busybox 目录下搜索都搜不到, 僵住了
  6. 单搜login又太多没什么信息能提取

再次login

  1. 因为我们已经确认是login可执行程序打出来的信息那么直接看他的实现直接分析源码

  2. 我们知道buybox 命名有个规则就是他的main函数就是命令_main

  3. 所以直接定位login的实现文件(login_main)
    在这里插入图片描述

  4. 发现有两个如何得知在试一下

  5. 我们在试试输错的情况下看看有没有线索
    在这里插入图片描述

  6. 搜索Login incorrect

  7. 发现两个都有 --------------尴尬住了在这里插入图片描述

  8. 等一分钟发现还有超时报错诶刚好作为线索搜索在这里插入图片描述

  9. 诶这回只有一个文件了,就他了
    在这里插入图片描述

  10. 那直接对这个文件搜索login看看有没有线索,发现没啥用的,上源码看
    在这里插入图片描述

login.c

  1. 直接对着源码一顿啃,然后发现有点看不明白,诶就先大致浏览
  2. 直接跳到login_main看代码流程和我们登陆的流程对上看看
  3. 浏览代码看到这个东西在这里插入图片描述
  4. 是不是和这个很像在这里插入图片描述
  5. 那么看下fromhost东西是啥,一个办法直接修改busybox源码打印出来看看
  6. 那么 我们不急看看下面有啥线索没,修改编译时间有点长有点太亏
  7. main函数不长前后找找看fromhost有没有用到
  8. 诶发现了还真有这个Login incorrect打印不就是前面输错误的打印吗
    在这里插入图片描述
  9. 连蒙带猜猜猜看,我认为输错三次他会打印出什么东西,直接输错测试下
  10. 诶这就舒服了直接对上这个on console 不就是上面登入的信息吗。
    在这里插入图片描述
  11. 现在已经很明确了就直接找呗看到如下信息,一开始我以为root是用户信息没想到是写死的,大意了,没闪。
    在这里插入图片描述

究极大法加打印

就现在的情况来将只能定位到root login onxxx的打印,前面的时间和进程号打印是一点没看到,没办法加打印测试

  1. 不加不知道一加吓一跳,原来这个时间和进程号是syslog自带的。
    在这里插入图片描述 在这里插入图片描述
  2. 为了验证syslog的实现发现没收到,后来百度一看原来这个是c库的东西
  3. 他的打印格式就是这样-----------时间 进程名 [进程号]:XXXX
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值