我刚刚了解了文件安全、用户和组等。并且我非常欣赏 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,即操作系统对文件系统拥有完全权限,因此,它可以在任何地方创建任何文件
我们来做一个实验:
为了进行实验,请在终端中运行以下代码行
/proc
首先查看您代表的文件数量ll /proc/ | grep lyg | wc -l
然后创建另一个进程。让新进程成为另一个
bash
实例。因此输入bash
并按 Enter。再次执行此命令
ll /proc/ | grep lyg | wc -l
现在你可以看到,至少还有 1 个文件。此文件是为新进程创建的
然后现在使用命令退出新创建的 bash
exit
。现在再次输入此命令:
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
这三个目前正在执行由您创建的用于显示输出的过程。