Я только что узнал о безопасности файлов, пользователях & amp; группа и т. д. И я очень ценю элегантность файловой системы 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/
?
Эти файлы связаны с процессами, созданными ОС от вашего имени. Эти файлы хранят информацию о процессах в реальном времени, такую как блок памяти, используемый процессами, открытые файлы процессами, имена файлов, к которым обращаются ваши процессы.
Эти файлы создаются ОС, то есть для вас 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
.
Эти файлы в /proc/nnnnn
создаются ядром для каждого процесса (PID), работающего в вашей системе, и содержат информацию и данные низкого уровня, относящиеся к процессу.
Как вы, возможно, знаете, суперпользователь (или root) может создавать файлы с любым владельцем и любыми разрешениями ... и ядро эффективно работает с полными привилегиями (как «root»), поэтому оно может создавать эти файлы на ваше имя.
Процесс, запущенный вами, может создавать другие процессы под управлением вашей учетной записи. Может быть, вы запустили какое-то приложение, которое создало другие вилки.
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
и эти три в настоящее время выполняют процесс для отображения вывода; созданный вами.