谁使用我的用户名在“/proc”中创建了文件?

谁使用我的用户名在“/proc”中创建了文件?

我刚刚了解了文件安全、用户和组等。并且我非常欣赏 Linux 文件系统的优雅。

我的用户名是lyg,我发现有一些文件的所有者lyg/proc/,如下所示:

lyg@lyg-VirtualBox:~$ ll /proc/|grep lyg
dr-xr-xr-x   8 root       lyg                 0 Aug  7 09:11 1119/
dr-xr-xr-x   8 lyg        lyg                 0 Aug  7 09:47 1298/
dr-xr-xr-x   8 lyg        lyg                 0 Aug  7 22:05 7097/
dr-xr-xr-x   8 lyg        lyg                 0 Aug  7 22:05 7098/

然后我发现这不能正常发生,这些文件不能由我手动创建,因为我没有所需的权限,请参阅:

lyg@lyg-VirtualBox:~$ ls -ld /proc/
dr-xr-xr-x 108 root root 0 Aug  7 09:10 /proc/

这是我的流程信息,从中我知道了与流程/proc/1298/相关的内容:-bash

lyg@lyg-VirtualBox:~$ ps -ef|grep lyg
avahi      452     1  0 09:11 ?        00:00:00 avahi-daemon: running [lyg-VirtualBox.local]
lyg       1298  1119  0 09:11 tty1     00:00:22 -bash
lyg       7099  1298  0 22:05 tty1     00:00:00 ps -ef
lyg       7100  1298  0 22:05 tty1     00:00:00 grep --color=auto lyg

那么,这些文件是如何/proc/创建的?

答案1

这些文件与操作系统为您创建的进程相关。这些文件存储有关进程的实时信息,例如进程使用的内存块、进程打开的文件、您的进程访问的文件的名称。

这些文件是由操作系统创建的,这就是 Ubuntu。作为 Ubuntu,即操作系统对文件系统拥有完全权限,因此,它可以在任何地方创建任何文件

我们来做一个实验:

为了进行实验,请在终端中运行以下代码行

  1. /proc首先查看您代表的文件数量

     ll /proc/ | grep lyg | wc -l
    
  2. 然后创建另一个进程。让新进程成为另一个bash实例。因此输入bash并按 Enter。

  3. 再次执行此命令

    ll /proc/ | grep lyg | wc -l
    

    现在你可以看到,至少还有 1 个文件。此文件是为新进程创建的

  4. 然后现在使用命令退出新创建的 bash exit

  5. 现在再次输入此命令:

    ll /proc/ | grep lyg | wc -l
    

你会发现,现在的输出比之前少了 1。这是因为操作系统删除了刚刚退出或终止的bash进程对应的文件。

答案2

这些文件/proc/nnnnn由内核为系统上运行的每个进程(PID)创建,包含低级进程相关的信息和数据。

您可能知道,超级用户(或 root)可以创建具有任何所有权和任何权限的文件...并且内核实际上以完全权限(以“root”身份)运行,因此它可以以您的名义创建这些文件。

答案3

您启动的进程可以在您的帐户控制下创建其他进程。您可能启动了某个创建了其他分支的应用程序。

lyg       1298  1119  0 09:11 tty1     00:00:22 -bash
lyg       7099  1298  0 22:05 tty1     00:00:00 ps -ef
lyg       7100  1298  0 22:05 tty1     00:00:00 grep --color=auto lyg

这三个目前正在执行由您创建的用于显示输出的过程。

相关内容