跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • [求助] Linux 上误删了一个 Python 文件,进程还在能恢复代码吗?
未分類
3 1 月 2021

[求助] Linux 上误删了一个 Python 文件,进程还在能恢复代码吗?

[求助] Linux 上误删了一个 Python 文件,进程还在能恢复代码吗?

資深大佬 : xjx0524 5

本来想删除日志文件,但是执行错目录了,把代码删了

.py .pyc 都没了,但是进程还在运行着,求助各位大佬能恢复吗?

大佬有話說 (32)

  • 資深大佬 : skydiver

    进程开着应该文件还没删吧,可以看看进程打开的文件

  • 主 資深大佬 : xjx0524

    @skydiver lsof -p pid 试了,并没有我要的文件…不知道还有什么方法吗?

  • 資深大佬 : westoy

    python 转 opcode 之后原文件的 fd 就释放了, 走 proc 路子应该是恢复不了的

    得 debugfs + dd 或者用 photorec 之类的程序恢复

  • 主 資深大佬 : xjx0524

    @westoy 凉凉,debugfs 已经看不到那个文件了…

  • 資深大佬 : xxxy

    能不能把内存 dump 出来再逆向?

  • 資深大佬 : lululau

    既然 lsof 没有这个文件,那说的“进程还在”是哪个进程还在?难不成说的是执行这个 Python 脚本的进程还在吗。。。

  • 資深大佬 : fox0001

    论版本控制的重要性

  • 資深大佬 : black11black

    大概是 G 了,能这么搞的话操作系统的安全性我觉得非常堪忧,linux 上有无数 py 写的运维软件,如果随便一个什么第三方都能提取。。。只能说以后做好备份。。

  • 資深大佬 : CEBBCAT

    @black11black 为什么不能 dump 出来呢? root 不可以访问内存吗?我觉得你的回复有点无从根据:“…大概率…我觉得…如果随便一个…只能说”,我想你的这个回复除了搅乱思路之外不能起到正面的帮助

    https://serverfault.com/questions/173999/dump-a-linux-processs-memory-to-file

  • 資深大佬 : CEBBCAT

    @black11black 可能你的出发点是好的,想尽一份自己的力量,看起来你尝试从经验上来回答这个问题,但是好像你没有遇到过相关的问题。

    我个人建议另一条方向:去搜索这个问题吧
    假如说是自己遇到了这个问题,要如何借助搜索引擎或者书籍的力量呢?

  • 資深大佬 : CEBBCAT

    @CEBBCAT 又搜索了几篇文章,希望对主有帮助:

    https://news.ycombinator.com/item?id=13847465
    https://gist.github.com/simonw/8aa492e59265c1a021f5c5618f9e6b12

  • 資深大佬 : black11black

    @CEBBCAT 逻辑堪忧啊兄弟,你钻研的精神我挺认可的,但是阅读理解能力和逻辑能力还需要加强。我从来也没说过 root 不能访问内存,也不知道你从哪句看出来的,显然主这篇内容是讨论提取源码,也不知道你看到提取两个字以后怎么联想到不能提取内存,想象力很丰富,显然 root 通过调用可以跨进程提取内存。

    我的逻辑很简单,linux 中大多数通过 python 完成的运维软件,如果随便拿到 root 就会导致源码泄露,会引起包含但不限于密钥泄露、商业代码泄露等在内的各种问题,而 linux 运行依赖庞杂到靠人脑无法管理的程度,限制全部可信(全部可信意思是不存在恶意风险)是不现实的。既然长久以来未听说过类似新闻,那就是不行。

  • 資深大佬 : irytu

    进程地址空间里面存的指令和数据 假设你能 dump 拿到它们 你还得逆向吧?

  • 資深大佬 : iamwho

    @black11black #12

    本身就是开源的,泄露什么

  • 資深大佬 : black11black

    @iamwho 你可能借助开源工具,管理你的核心密钥,以及部署需要保护源码的服务等等。

  • 資深大佬 : Cooky

    赶快把磁盘镜像 dump 出来,用恢复软件找

  • 主 資深大佬 : xjx0524

    @lululau 还在的进程是 python xxx.py ,这个的父进程 id 是 1,我用 lsof 看了本身的 pid 和父进程的 pid 都没有这个文件,不知道是不是用法有误…

  • 資深大佬 : lean

    /proc/进程 id/ 下看下里面的文件内容,记得可以恢复,忘记具体哪个文件了

  • 主 資深大佬 : xjx0524

    @CEBBCAT
    @black11black
    @Cooky
    感谢所有回复的各位提供的思路。
    文件删除发生在前天,昨天晚上才发现,机器有多人使用和大量的磁盘读写。
    内存 dump 比较浪费精力,可能也确实拿不到源码。
    这个教训只能自己接受了。。。

  • 資深大佬 : keepeye

    呃呃呃 难道源码只存在服务器上?平时咋开发呢

  • 資深大佬 : Hackerl

    内存搜索: grep ‘source keyword’ /proc/$(pid)/map_files -r

  • 資深大佬 : raaaaaar

    这就是个纠正你开发流程的好机会,好好思考为什么会出现这样的问题,下次再出现怎么办。
    而且我也想问,你的代码就只在服务器上吗?难不成你开发都是 ssh 到服务器上么。。

  • 主 資深大佬 : xjx0524

    @lean
    @Hackerl
    没有 map_files 这个文件 or 目录,不过又学到点知识 /proc,感谢

  • 主 資深大佬 : xjx0524

    @keepeye
    @raaaaaar
    平时开发就是直接在服务器上,因为本机到服务器中间还有中控机和跳板机,本机开发完再传过去很麻烦的。
    这次疏忽在于被删的只是个人维护的一个长期运行的脚本,没有做备份和版本控制。。。

  • 資深大佬 : zhuangjia

    学到了:论版本控制的重要性
    即便是自己用的脚本,也要做好版本控制

  • 資深大佬 : bbbb

    确实版本控制的重要性,有备份就不慌

  • 資深大佬 : xuboying

    gcore 那个 python 进程,然后 strings core 文件?

  • 資深大佬 : julyclyde

    @xuboying strings 里肯定不会有你想要的内容

  • 資深大佬 : xuboying

    如果出现异常能看到少量信息

  • 資深大佬 : xuboying

    @julyclyde #28 不知道触发了什么关键字,源代码也不能贴了

  • 資深大佬 : xuboying

    @xuboying #30 如果出现异常能看到少量屏幕打印信息,gcore 里确实没有,奇怪

  • 資深大佬 : xuboying

    @xuboying #31 pastebin.com/TRuHtL7H

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具