{"unit":"https://translate-dev.freebsd.org/api/units/1788479/?format=json","component":"https://translate-dev.freebsd.org/api/components/documentation/booksarch-handbookjail_index/?format=json","translation":"https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/ru/?format=json","user":"https://translate-dev.freebsd.org/api/users/v.popolitov/?format=json","author":"https://translate-dev.freebsd.org/api/users/v.popolitov/?format=json","timestamp":"2026-04-04T06:02:46.355730Z","action":27,"target":"В файле [.filename]#kern_jail.c# функция `jail()` вызывает функцию `jail_attach()` с заданным `jid`. Затем `jail_attach()` вызывает функцию `change_root()` для изменения корневого каталога вызывающего процесса. Функция `jail_attach()` создает новую структуру `ucred` и присоединяет её к вызывающему процессу после успешного присоединения структуры `prison` к структуре `ucred`. С этого момента вызывающий процесс считается находящимся в клетке. Когда в ядре вызывается функция `jailed()` с вновь созданной структурой `ucred` в качестве аргумента, она возвращает 1, указывая, что учётные данные связаны с клеткой. Общим родительским процессом для всех процессов, созданных внутри клетки, является процесс, запускающий man:jail[8], так как он вызывает системный вызов man:jail[2]. При выполнении программы через man:execve[2] она наследует свойство клетки из структуры `ucred` родительского процесса, следовательно, у неё структура `ucred` тоже со свойством клетки.","id":950466,"action_name":"搜索并替换","url":"https://translate-dev.freebsd.org/api/changes/950466/?format=json"}