【问题标题】:How to hide/unhide a file from 'ls -a' in linux kernel? [closed]如何在 linux 内核中隐藏/取消隐藏“ls -a”中的文件? [关闭]
【发布时间】:2012-10-17 08:16:41
【问题描述】:

我想通过实现我自己的系统调用来删除一个文件或文件夹,这样在给出命令 'ls -a' 后它一定对我不可见。

所以基本上我想从诸如“ls”或“ls -a”之类的命令中隐藏一个文件。然后取消隐藏它。

这意味着我不希望它完全删除它。只需对用户隐藏它即可。

我认为它必须做一些事情

struct file_operations *f_op;

我们可以通过操作“readdir()”来实际隐藏文件。

但我不知道如何操作它。

有什么帮助吗?

P.S:- Linux 内核版本 3.5.x x86 64 位。我正在 /linux/fs/namei.c 中进行更改

【问题讨论】:

  • 一定要在内核空间里做吗?
  • 听起来你在写病毒/rootkit?
  • @mux 是的。我必须在内核空间中进行。
  • "rm -rf" 可以很好地隐藏文件。
  • 您出于什么目的试图回避已实施的经过深思熟虑的安全程序?

标签: c linux linux-kernel system-calls inode


【解决方案1】:

没有办法做到这一点——即使有,你也不应该这样做。

相反,如果您希望能够“取消删除”文件,您应该在文件系统的某处有一个文件夹(例如,“.Trash”),而不是使用unlink 或类似方法删除文件,只需将文件移动到垃圾目录即可。在“取消删除”时,只需将文件移回即可。在“清空垃圾箱”或其他任何地方,实际取消文件与硬盘驱动器的链接。

这将具有从ls -a 等命令“隐藏”文件的效果,因为该文件不再存在于该文件夹中;它已被移至硬盘驱动器上其他位置的某个垃圾文件夹或回收站。

【讨论】:

  • 感谢您的回答。你能告诉我这是什么吗:我的意思是这是在同一条路上吗? codeproject.com/Articles/444995/…
  • @SRJ - 我笑得气死了。一看到 CodeProject 的链接,我就怀疑这篇文章的作者是谁。我没有说错。看看他们的其他系统编程文章——他们似乎发表的所有文章都是用于 effing 的 hacky/后门方法——操作系统应该保留专有权利的东西。供参考:codeproject.com/Articles/Apriorit-Inc#articles
  • @SRJ:在我看来,您链接到的文章是不好的编程习惯,永远不应该使用。它本身就是一种黑客行为。它违反了安全原则并破坏了通用计算的诚信努力。请永远不要实现这样的程序,也不要追求这样的编程策略。
猜你喜欢
  • 2011-01-28
  • 1970-01-01
  • 2012-10-24
  • 1970-01-01
  • 2017-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多