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

LYg*_*LYg 1 permissions security process username

我刚刚了解了文件安全、用户和组等方面的知识。我非常欣赏 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/
Run Code Online (Sandbox Code Playgroud)

然后我发现这不能正常发生,我无法手动创建这些文件,因为我没有权限要求,请参阅:

lyg@lyg-VirtualBox:~$ ls -ld /proc/
dr-xr-xr-x 108 root root 0 Aug  7 09:10 /proc/
Run Code Online (Sandbox Code Playgroud)

这是我的流程信息,从中我知道这/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
Run Code Online (Sandbox Code Playgroud)

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

Anw*_*war 5

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

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

我们来做一个实验:

为了进行实验,请在终端中运行这些代码行

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

     ll /proc/ | grep lyg | wc -l
    
    Run Code Online (Sandbox Code Playgroud)
  2. 然后创建另一个进程。让新进程成为另一个bash实例。所以输入bash并按回车键。

  3. 再次执行此命令

    ll /proc/ | grep lyg | wc -l
    
    Run Code Online (Sandbox Code Playgroud)

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

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

  5. 现在再次输入以下命令:

    ll /proc/ | grep lyg | wc -l
    
    Run Code Online (Sandbox Code Playgroud)

您会看到,现在的输出比之前的少 1。因为,操作系统删除了与刚刚存在或终止的bash进程对应的文件。