Если Вы смотрите на: http://www.sqlite.org/fileformat.html, формат SQLite запускает со строки "формат 3\000 SQLite". Мне кажется, что Вы могли проверить head -c 16
из файла для проверки формата. Я ожидал бы, что это будет быстрее затем использовать инструменты более общего назначения.
Процессы обычно имеют пользователя и идентификатор группы, который они выполняют в, процессы, которые запускаются с root
разрешение (идентификатор пользователя 0), может изменить идентификатор, который они выполняют с (например, Ваш веб-сервер может работать как пользовательские www-данные).
Во время запуска идентификатор исходного пользователя 0 для чего-то, что запускается зарегистрированным пользователем, это - (в большинстве случаев) идентификатор пользователя.
Таким образом, Вы действительно не владеете теми процессами, они работают с Вашим идентификатором, и это позволяет Вам уничтожать их и т.д. Идентификаторы процесса также определяют, к каким каталогам можно получить доступ и какие файлы изменились/создали.
Процессы имеют происхождения точно так же, как люди. Таким образом, таким же образом у людей есть родители, процессы - также. Если Вы смотрите на вывод 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
Каждый процесс работает как конкретный пользователь. (Это называют “пользователем”, не “владельцем”.) Пользователь определяет права процессов. В частности, если процесс работает как пользователь sumi
, затем каждый раз, когда тот процесс пытается получить доступ к файлу, “пользовательские” полномочия на том файле применяются (первая rwx группа ls -l
вывод, первая цифра восьмеричного режима).
Много вещей ограничиваются процессами, работающими как тот же пользователь, такими как отправка сигналов (уничтожающей) и получающей отладочной информации.
Все процессы, что Вы взаимодействуете с непосредственно — оболочка, эмулятор терминала, браузер, и т.д. — выполненный как Ваш пользователь.
Пользователь, которого выполняет процесс, как не связано с пользователем, который владеет дисковым файлом, содержащим программу. Большинство программ установлено в масштабе всей системы и принадлежит корню, но когда программа выполнена, выполнения процесса как пользователь, который запустил его.
init
процесс, как другие базовые системные процессы, работает как пользователь системы, корень. Пользователь root имеет больше прав, чем другие пользователи.
(Это должно было запустить Вас. Я упростил несколько аспектов пользователей процесса, полномочий и прав доступа к файлу.)