查看和编辑由不可读文本和符号组成的系统文件

Emi*_*son 7 configuration files

我的印象是,基本上 Unix 系统中的所有文件都是可编辑的,至少是可见的。

当我遇到如下所示的文件时,我可以采取哪些步骤nano

在 Nano 中查看的二进制 greeter-dconf-defaults 文件的屏幕截图

我如何确定它到底是什么类型的文件,如果它是一个正在运行的文件,以及我需要找出它的代码以及文件导入/导出/依赖的内容?

Ser*_*nyy 9

存在于文件系统或内存中的所有文件在技术上都是可编辑的,只需使用正确的方法即可。您遇到了一个二进制数据文件,特别是与根据文件名行中的名称和文件本身中的关键字判断的设置dconf数据库有关。因此,您应该使用GUI 工具或命令行工具。nanoGVariantdconf-editordconf

我如何确定它到底是什么类型的文件,如果它是一个正在运行的文件,以及我需要找出它的代码以及文件导入/导出/依赖的内容。

通常,您可以使用file命令来确定特定的文件类型。

$ file /etc/passwd
/etc/passwd: ASCII text
Run Code Online (Sandbox Code Playgroud)

文件是否可执行,您可以使用ls -l filenamestat来确定是否为所有者、组和其他用户设置了可执行位。请参阅相关帖子,该帖子很好地解释了文件权限。还有 访问控制列表,用于创建比基本 Unix 权限允许的更多的奇特权限。

至于使用什么软件,这取决于每个文件,并且对于相同的文件类型有多种类型的软件。通常可以通过十六进制格式的 hexdump 或 od 命令查看二进制文件,并进行编辑 - 有十六进制编辑器,通常用于逆向工程和安全应用程序。


我的印象是,基本上 Unix 系统中的所有文件都是可编辑的,至少是可见的。

嗯,“一切都是 Unix/Linux 中的文件”这句话有一点道理。有些文件可以存在于文件系统中,这就是大多数人所知道的文件。实际上,文件(即在某处组织在一起的特定数据块)可以存在于内存或文件系统中,即可以存在匿名文件。 套接字 和未命名管道是文件,它们只是没有名称,只有内核跟踪的句柄。可以全部编辑吗?是的,再次使用正确的方法。管道有一个进程写入它,而另一个读取,因此作者可以编辑管道。如果您的程序可以访问该特定内存块,则可以编辑映射到内存中的文件。所以一切都是一个文件,

  • @Rinzwind 它是一个文件,准确地说是一个特殊字符设备文件。另见 https://unix.stackexchange.com/a/18534/85039 (4认同)
  • @Rinzwind - 您必须将“一切都是文件”理解为“(几乎)一切都可以通过文件 API 访问”。你可以做 fopen("/dev/random", "rb"),所以 /dev/random 是一个文件,不管磁盘上的表示(或缺少)。 (4认同)