Я заметил, что существует запись для пользователя человека в моем /etc/passwd
файл. Какова цель этого пользователя?
man:x:6:12:man:/var/cache/man:/bin/sh
man
(команда, не пользователь), приложение справки. Приложения предоставляют страницы справочника в своих пакетах, но man
потребности знать, где они и также что помогает, они обеспечивают. Ускорять вещи — так man
не поиск целая файловая система, когда Вы вводите man <command>
— эти страницы справочника индексируются в базу данных названной командой mandb
.
В Ubuntu mandb
хранилища индексируют в GNU gdbm базу данных в /var/cache/man/index.db
(и некоторые язык определенные версии в том же каталоге). Это - база данных хеширования значения ключа, не отличающаяся от кэш-памяти или ста других реализаций на подобных идеях. Это является двоичным, легким и быстрым. Я добавлю пример того, как играть с ним в конце.
Эта индексация, как планируют, будет ежедневно работать в Ubuntu /etc/cron.daily/man-db
. Целый сценарий работает как корень и делает некоторую чистку сначала, но прямо в конце мы видим mandb
быть выполненным как man
пользователь:
# --pidfile /dev/null so it always starts; mandb isn't really a daemon,
# but we want to start it like one.
start-stop-daemon --start --pidfile /dev/null \
--startas /usr/bin/mandb --oknodo --chuid man \
$iosched_idle \
-- --no-purge --quiet
Это не изменяет группу, которая является почему все владения группы в /var/cache/man
являются все еще корневыми.
Но почему делает mandb
выполненный как другой пользователь вообще? Это могло (вероятно), работать точно так же как root
но это обрабатывает вход от множества источников (взгляд на manpath
). Выполнение как его собственный пользователь изолирует систему от аварийного завершения процесса — или хуже — быть использованным уродливыми, поврежденными или злонамеренными страницами справочника.
Худшее, которое могло произойти, будет только влиять man
индекс страниц. Шиканье ого-го. Можно подтвердить что с чем-то как:
sudo -u man find / -writable 2>/dev/null
И можно использовать тот подход для наблюдения, какому количеству повреждения любой пользователь мог дать выход в системе. Это - хорошая идея контролировать Ваши полномочия файла (я просто узнал, что любой пользователь мог удалить мою всю музыкальную коллекцию, например).
Можно посмотреть на базу данных с accessdb
. Вот несколько случайных записей:
$ accessdb | shuf -n3
fpurge -> "- 3 3 1380819168 A - - gz purge a stream"
fcgetlangs -> "FcGetLangs 3 3 1402007131 A - - gz Get list of languages"
ipython -> "- 1 1 1393443907 A - - gz Tools for Interactive Computing in Python."
Хотя не совсем ясный из вышеупомянутого, там существуют на самом деле разделенные от вкладки поля:
<name> -> <ext> <sec> <mtime> <ID> <ref> <comp> <whatis>
Можно читать больше о фактическом полевом содержании в техническом руководстве.