Владелец init и xterm

Если Вы смотрите на: http://www.sqlite.org/fileformat.html, формат SQLite запускает со строки "формат 3\000 SQLite". Мне кажется, что Вы могли проверить head -c 16 из файла для проверки формата. Я ожидал бы, что это будет быстрее затем использовать инструменты более общего назначения.

0
10.12.2013, 01:24
3 ответа

Процессы обычно имеют пользователя и идентификатор группы, который они выполняют в, процессы, которые запускаются с root разрешение (идентификатор пользователя 0), может изменить идентификатор, который они выполняют с (например, Ваш веб-сервер может работать как пользовательские www-данные).

Во время запуска идентификатор исходного пользователя 0 для чего-то, что запускается зарегистрированным пользователем, это - (в большинстве случаев) идентификатор пользователя.

Таким образом, Вы действительно не владеете теми процессами, они работают с Вашим идентификатором, и это позволяет Вам уничтожать их и т.д. Идентификаторы процесса также определяют, к каким каталогам можно получить доступ и какие файлы изменились/создали.

1
28.01.2020, 02:28

Процессы имеют происхождения точно так же, как люди. Таким образом, таким же образом у людей есть родители, процессы - также. Если Вы смотрите на вывод ps Вы видите, кто владеет конкретным процессом.

$ ps -eaf | head -10
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Dec07 ?        00:00:07 /usr/lib/systemd/systemd --system --deserialize 24
root         2     0  0 Dec07 ?        00:00:00 [kthreadd]
root         3     2  0 Dec07 ?        00:00:03 [ksoftirqd/0]
root         5     2  0 Dec07 ?        00:00:00 [kworker/0:0H]
root         7     2  0 Dec07 ?        00:00:00 [kworker/u:0H]
root         8     2  0 Dec07 ?        00:00:06 [migration/0]
root         9     2  0 Dec07 ?        00:00:00 [rcu_bh]
root        10     2  0 Dec07 ?        00:00:56 [rcu_sched]
root        11     2  0 Dec07 ?        00:00:00 [watchdog/0]

1-й столбец является пользователем, который владеет процессом. 2-й столбец является идентификатором процесса (PID), присвоенный тому процессу. И 3-й столбец является идентификатором родительского процесса (PPID). Этот PPID - то, какие цепочки процесс к предыдущему процессу, поэтому в действительности PPID является идентификатором родительского процесса для конкретного процесса.

Это примеры процессов, которые являются другими пользователями (помимо корня), которым владел PPID's процессов пользовательский корень.

Примеры

Принадлежавший пользователю avahi:

avahi      511     1  0 Dec07 ?        00:00:00 avahi-daemon: running [greeneggs.local]

Принадлежавший пользователю dbus:

dbus       512     1  0 Dec07 ?        00:00:22 /bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation

Здесь мы видим, где процесс, запущенный процессом, принадлежавшим корню в конечном счете, охватывает процесс, принадлежавший моему имени пользователя saml.

root      1266   547  0 Dec07 ?        00:00:00 gdm-session-worker [pam/gdm-password]
saml      1277  1266  0 Dec07 ?        00:00:03 gnome-session

Заметьте, что PPID сессии гнома является 1277.

Наконец можно использовать немного отличающиеся переключатели для ps видеть визуальное дерево происхождения.

$ ps -auxf
root       530  0.0  0.0 296804  1824 ?        Ssl  Dec07   0:00 /usr/sbin/gdm
root       547  0.0  0.0 380436  2208 ?        Sl   Dec07   0:00  \_ /usr/libexec/gdm-simple-slave --display-id /org/gnome/Dis
root       584  4.0  0.5 297980 40816 tty1     Ss+  Dec07  86:37      \_ /usr/bin/Xorg :0 -background none -verbose -auth /run
root      1266  0.0  0.0 516956  3160 ?        Sl   Dec07   0:00      \_ gdm-session-worker [pam/gdm-password]
saml      1277  0.0  0.0 714828  6336 ?        Ssl  Dec07   0:03          \_ gnome-session
1
28.01.2020, 02:28

Каждый процесс работает как конкретный пользователь. (Это называют “пользователем”, не “владельцем”.) Пользователь определяет права процессов. В частности, если процесс работает как пользователь sumi, затем каждый раз, когда тот процесс пытается получить доступ к файлу, “пользовательские” полномочия на том файле применяются (первая rwx группа ls -l вывод, первая цифра восьмеричного режима).

Много вещей ограничиваются процессами, работающими как тот же пользователь, такими как отправка сигналов (уничтожающей) и получающей отладочной информации.

Все процессы, что Вы взаимодействуете с непосредственно — оболочка, эмулятор терминала, браузер, и т.д. — выполненный как Ваш пользователь.

Пользователь, которого выполняет процесс, как не связано с пользователем, который владеет дисковым файлом, содержащим программу. Большинство программ установлено в масштабе всей системы и принадлежит корню, но когда программа выполнена, выполнения процесса как пользователь, который запустил его.

init процесс, как другие базовые системные процессы, работает как пользователь системы, корень. Пользователь root имеет больше прав, чем другие пользователи.

(Это должно было запустить Вас. Я упростил несколько аспектов пользователей процесса, полномочий и прав доступа к файлу.)

1
28.01.2020, 02:28

Теги

Похожие вопросы