aboutsummaryrefslogtreecommitdiff
path: root/documentation/content/ru/books/handbook/basics/_index.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/content/ru/books/handbook/basics/_index.adoc')
-rw-r--r--documentation/content/ru/books/handbook/basics/_index.adoc1348
1 files changed, 498 insertions, 850 deletions
diff --git a/documentation/content/ru/books/handbook/basics/_index.adoc b/documentation/content/ru/books/handbook/basics/_index.adoc
index aae7ea47cb..af550812be 100644
--- a/documentation/content/ru/books/handbook/basics/_index.adoc
+++ b/documentation/content/ru/books/handbook/basics/_index.adoc
@@ -1,14 +1,14 @@
---
-title: Глава 3. Основы FreeBSD
-part: Часть I. Начало работы
-prev: books/handbook/bsdinstall
+description: 'Основные команды и функциональные возможности операционной системы FreeBSD'
next: books/handbook/ports
-description: Основные команды и функциональность операционной системы FreeBSD
-tags: ["основы", "виртуальные консоли", "пользователи", "управление", "полномочия", "структура каталогов", "организация диска", "монтирование", "процессы", "даемоны", "оболочка", "редактор", "страницы справочника", "устройства"]
+params:
+ path: /books/handbook/basics/
+part: 'В начале'
+prev: books/handbook/bsdinstall
showBookMenu: true
+tags: ["basics", "virtual consoles", "users", "management", "permissions", "directory structure", "disk organization", "mounting", "processes", "daemons", "shell", "editor", "manual pages", "devices"]
+title: 'Глава 3. Основы FreeBSD'
weight: 5
-params:
- path: "/books/handbook/basics/"
---
[[basics]]
@@ -49,166 +49,128 @@ toc::[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
-//
-// The FreeBSD Russian Documentation Project
-//
-// Original EN revision (23.09.2024): c6f45f005306d23f396e1ec9ddff165312aad867
-//
-
[[basics-synopsis]]
-== Краткий обзор
+== Обзор
-Эта глава посвящена основным командам и функциональности операционной системы FreeBSD.
-Большая часть нижеизложенного материала применима к любой UNIX(R)-подобной операционной системе.
-Новые пользователи FreeBSD призываются к внимательному чтению всей главы.
+В этой главе рассматриваются основные команды и функциональные возможности операционной системы FreeBSD. Большая часть материала применима к любым UNIX(R)-подобным операционным системам. Новым пользователям FreeBSD рекомендуется внимательно ознакомиться с этой главой.
Прочитав эту главу, вы будете знать:
* Как использовать и настраивать виртуальные консоли.
* Как создавать пользователей и группы пользователей во FreeBSD и управлять ими.
-* Как работают права доступа на файлы в UNIX(R) и файловые флаги во FreeBSD.
+* Как работают права доступа на файлы в UNIX® и файловые флаги во FreeBSD.
* Иерархию каталогов FreeBSD.
-* Организацию дисков FreeBSD.
+* Организация дисков в FreeBSD.
* Как монтировать и размонтировать файловые системы.
-* Что такое процессы, даемоны и сигналы.
-* Что такое командный процессор и как изменить используемые по умолчанию параметры рабочего окружения.
-* Как пользоваться стандартными текстовыми редакторами.
-* Что такое устройства и файлы устройств.
-* Как пользоваться справочным руководством для получения дополнительной информации.
+* Что такое процессы, демоны и сигналы.
+* Что такое оболочка и как изменить среду входа по умолчанию.
+* Как использовать основные текстовые редакторы.
+* Что такое устройства и узлы устройств.
+* Как читать справочные страницы для получения дополнительной информации.
[[consoles]]
== Виртуальные консоли и терминалы
-Если только FreeBSD не была настроена на автоматический запуск графической среды при загрузке, система будет запускаться в режиме запроса ввода имени учётной записи в командной строке, как в этом примере:
+Если FreeBSD не настроена для автоматического запуска графической среды во время загрузки, система загрузится в командную строку с приглашением для входа, как показано в этом примере:
[.programlisting]
....
+FreeBSD/amd64 (pc3.example.org) (ttyv0)
+
login:
....
-Первая строка содержит определённую информацию о системе.
-`amd64` указывает на то, что FreeBSD работает в 64-разрядной системе x86.
-`pc3.example.org` является именем хоста, а `ttyv0` указывает на то, что это "системная консоль".
-Вторая строка является приглашением к входу в систему.
+Первая строка содержит некоторую информацию о системе. `amd64` указывает, что FreeBSD работает на 64-битной x86 системе. Имя хоста — `pc3.example.org`, а `ttyv0` означает, что это «системная консоль». Вторая строка — это приглашение для входа в систему.
-Поскольку FreeBSD является многопользовательской системой, она должна каким-то образом отличать различных пользователей.
-Это достигается за счёт того, что каждый пользователь перед получением доступа к программам системы должен в эту систему войти.
-Каждый пользователь имеет уникальное "имя пользователя" и персональный "пароль".
+Поскольку FreeBSD — это многопользовательская система, требуется способ различать пользователей. Для этого необходимо, чтобы каждый пользователь вошел в систему перед получением доступа к программам. У каждого пользователя есть уникальное «имя пользователя» и личный «пароль».
-Для входа в системную консоль наберите имя пользователя, которое было настроено во время установки системы, описанной в разделе <<bsdinstall-addusers>>, и нажмите kbd:[Enter].
-Затем введите пароль, соответствующий этому имени пользователя и нажмите kbd:[Enter].
-Пароль _не отображается_ по соображениям безопасности.
+Для входа в системную консоль введите имя пользователя, заданное при установке системы, как описано в crossref:bsdinstall[bsdinstall-addusers,Добавление пользователей], и нажмите kbd:[Enter]. Затем введите пароль, связанный с этим именем пользователя, и нажмите kbd:[Enter]. Пароль _не отображается_ в целях безопасности.
-После ввода корректного пароля будет выдано сообщение дня (MOTD, Message Of The Day), за которым последует приглашение командной строки.
-В зависимости от командного процессора, который был выбран при создании пользователя, таким приглашением будет символ `+#+`, `$` или `%`.
-Это приглашение указывает на то, что теперь пользователь вошёл в системную консоль FreeBSD и может попытаться использовать имеющиеся команды.
+После ввода правильного пароля будет отображено сообщение дня (MOTD), за которым последует приглашение командной строки. В зависимости от выбранной оболочки при создании пользователя, это приглашение может быть символом `+#+`, `$` или `%`. Приглашение указывает, что пользователь теперь вошел в консоль системы FreeBSD и готов попробовать доступные команды.
[[consoles-virtual]]
=== Виртуальные консоли
-Хотя системная консоль может использоваться для взаимодействия с системой, пользователь, работающий в режиме командной строки за клавиатурой системы FreeBSD, как правило, будет входить в систему через виртуальную консоль.
-Это так, потому что по умолчанию выдача системных сообщений настроена на их отображение на системной консоли.
-Эти сообщения будут выдаваться поверх команд или файлов, с коорым работает пользователь, что мешает сосредоточиться на текущей работе.
+Хотя системную консоль можно использовать для взаимодействия с системой, пользователь, работающий из командной строки на клавиатуре FreeBSD, обычно вместо этого входит в виртуальную консоль. Это связано с тем, что системные сообщения по умолчанию настроены на отображение на системной консоли. Эти сообщения будут появляться поверх команды или файла, с которыми работает пользователь, что затрудняет концентрацию на текущей задаче.
-По умолчанию FreeBSD настроена так, что она предоставляет несколько виртуальных консолей для ввода команд.
-Каждая виртуальная консоль обладает собственным приглашением к входу в систему и командным процессором, а переключение между виртуальными консолями выполняется легко.
-В итоге это равнозначно предоставлению нескольких одновременно открытых окон в графической среде, но в режиме командной строки.
+По умолчанию FreeBSD настроена для предоставления нескольких виртуальных консолей для ввода команд. Каждая виртуальная консоль имеет собственную приглашение для входа и оболочку, и переключение между виртуальными консолями осуществляется легко. Это, по сути, предоставляет эквивалент командной строки для одновременного открытия нескольких окон в графической среде.
-Для переключения между виртуальными консолями во FreeBSD зарезервированы комбинации клавиш от kbd:[Alt+F1] до kbd:[Alt+F8].
-Используйте kbd:[Alt+F1] для переключения на системную консоль (`ttyv0`), kbd:[Alt+F2] для доступа к первой виртуальной консоли (`ttyv1`), kbd:[Alt+F3] для доступа ко второй виртуальной консоли (`ttyv2`) и так далее.
-При использовании Xorg в качестве графической консоли для переключения на текстовую виртуальную консоль используется комбинация kbd:[Ctrl+Alt+F1].
+Сочетания клавиш kbd:[Alt+F1] — kbd:[Alt+F8] зарезервированы в FreeBSD для переключения между виртуальными консолями. Используйте kbd:[Alt+F1] для перехода к системной консоли (`ttyv0`), kbd:[Alt+F2] для доступа к первой виртуальной консоли (`ttyv1`), kbd:[Alt+F3] для доступа ко второй виртуальной консоли (`ttyv2`) и так далее. При использовании Xorg в качестве графической консоли для возврата к текстовой виртуальной консоли используется сочетание kbd:[Ctrl+Alt+F1].
-При переключении от одной консоли к другой FreeBSD берёт на себя управление изображением на экране.
-В результате создаётся видимость наличия множества виртуальных экранов и клавиатур, которые могут быть использованы при наборе команд для их запуска во FreeBSD.
-Программы, запущенные на одной из виртуальных консолей, не прекращают своей работы, когда пользователь переключается на другую виртуальную консоль.
+При переключении с одной консоли на другую FreeBSD управляет выводом на экран. В результате создаётся иллюзия наличия нескольких виртуальных экранов и клавиатур, которые можно использовать для ввода команд на выполнение в FreeBSD. Программы, запущенные в одной виртуальной консоли, продолжают работать при переключении пользователя на другую виртуальную консоль.
-Обратитесь к man:kbdcontrol[1], man:vidcontrol[1], man:atkbd[4], man:syscons[4] и man:vt[4] для получения дополнительных технических описаний консоли FreeBSD и драйверов её клавиатуры.
+Обратитесь к man:kbdcontrol[1], man:vidcontrol[1], man:atkbd[4], man:syscons[4] и man:vt[4] для более технического описания консоли FreeBSD и её драйверов клавиатуры.
-Во FreeBSD количество доступных виртуальных консолей настраивается в следующем разделе файла `/etc/ttys`.
+В FreeBSD количество доступных виртуальных консолей настраивается в этом разделе `/etc/ttys`:
[.programlisting]
....
-# name getty type status comments
+# name getty type status comments
#
-ttyv0 "/usr/libexec/getty Pc" xterm on secure
+ttyv0 "/usr/libexec/getty Pc" xterm on secure
# Virtual terminals
-ttyv1 "/usr/libexec/getty Pc" xterm on secure
-ttyv2 "/usr/libexec/getty Pc" xterm on secure
-ttyv3 "/usr/libexec/getty Pc" xterm on secure
-ttyv4 "/usr/libexec/getty Pc" xterm on secure
-ttyv5 "/usr/libexec/getty Pc" xterm on secure
-ttyv6 "/usr/libexec/getty Pc" xterm on secure
-ttyv7 "/usr/libexec/getty Pc" xterm on secure
+ttyv1 "/usr/libexec/getty Pc" xterm on secure
+ttyv2 "/usr/libexec/getty Pc" xterm on secure
+ttyv3 "/usr/libexec/getty Pc" xterm on secure
+ttyv4 "/usr/libexec/getty Pc" xterm on secure
+ttyv5 "/usr/libexec/getty Pc" xterm on secure
+ttyv6 "/usr/libexec/getty Pc" xterm on secure
+ttyv7 "/usr/libexec/getty Pc" xterm on secure
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
....
-Для отключения какой-либо виртуальной консоли поместите символ комментария (`+#+`) в начале строки, соответствующей этой виртуальной консоли.
-К примеру, для уменьшения количества доступных виртуальных консолей с восьми до четырёх поместите `+#+` в начале последних четырёх строк, представляющих виртуальные консоли с `ttyv5` по `ttyv8`.
-_Не комментируйте_ строку системной консоли `ttyv0`.
-Заметьте, что последняя виртуальная консоль (`ttyv8`) используется для доступа к графическому окружению, если был установлен пакет Xorg, как это описано в главе crossref:x11[x11,X Window System].
-+
-За детальным описанием каждой колонки этого файла и доступных параметров виртуальных консолей обратитесь к man:ttys[5].
+Чтобы отключить виртуальную консоль, поставьте символ комментария (`+#+`) в начале строки, соответствующей этой виртуальной консоли. Например, чтобы уменьшить количество доступных виртуальных консолей с восьми до четырёх, добавьте `+#+` перед последними четырьмя строками, представляющими виртуальные консоли `ttyv5` до `ttyv8`. _Не_ комментируйте строку системной консоли `ttyv0`. Обратите внимание, что последняя виртуальная консоль (`ttyv8`) используется для доступа к графической среде, если Xorg установлен и настроен, как описано в crossref:x11[x11,Система X Window].
+
+Для подробного описания каждой колонки в этом файле и доступных опций для виртуальных консолей обратитесь к man:ttys[5].
[[consoles-singleuser]]
=== Однопользовательский режим
-В загрузочном меню FreeBSD имеется пункт, который называется "Boot Single User".
-При его выборе система загрузится в специальном режиме, который называется "однопользовательским".
-Этот режим обычно используется для восстановления работоспособности системы, которая не загружается, или для сброса пароля пользователя `root`, когда он неизвестен.
-В однопользовательском режиме недоступны сетевые функции и дополнительные виртуальные консоли.
-При всём при этом имеется полный доступ к системе с полномочиями пользователя `root`, и по умолчанию пароль пользователя `root` не требуется.
-По этим причинам для загрузки в таком режиме требуется физический доступ к клавиатуре, а решение о том, кто имеет физический доступ к клавиатуре, стоит рассматривать в контексте обеспечения безопасности системы FreeBSD.
-+
-Настройки, управляющие однопользовательским режимом, находятся в следующем разделе файла `/etc/ttys`:
+В меню загрузки FreeBSD есть пункт с названием "Boot Single User". При выборе этого пункта система загрузится в особый режим, известный как "однопользовательский режим". Этот режим обычно используется для восстановления системы, которая не загружается, или для сброса пароля `root`, если он неизвестен. В однопользовательском режиме сеть и другие виртуальные консоли недоступны. Однако предоставляется полный доступ `root` к системе, и по умолчанию пароль `root` не требуется. По этим причинам для загрузки в этом режиме необходим физический доступ к клавиатуре, и определение того, кто имеет такой доступ, является важным аспектом обеспечения безопасности системы FreeBSD.
+
+Настройки, управляющие однопользовательским режимом, находятся в этом разделе файла `/etc/ttys`:
[.programlisting]
....
-# name getty type status comments
+# name getty type status comments
#
-# Если консоль помечена как "insecure", то init будет запрашивать пароль
-# пользователя root при переходе в однопользовательский режим
-console none unknown off secure
+# If console is marked "insecure", then init will ask for the root password
+# when going to single-user mode.
+console none unknown off secure
....
-По умолчанию столбец status установлен в значение `secure`.
-Это предполагает, что физический доступ к клавиатуре либо не важен, либо контролируется политикой физической безопасности.
-Если изменить этот параметр на `insecure`, то это будет означать, что само по себе окружение не является безопасным, так как любой может получить доступ к клавиатуре.
-Когда в этой строке значение меняется на `insecure`, то FreeBSD будет запрашивать пароль пользователя `root` в случае, когда пользователь выберет загрузку в однопользовательском режиме.
+По умолчанию статус установлен в `secure`. Это предполагает, что тот, кто имеет физический доступ к клавиатуре, либо не важен, либо контролируется политикой физической безопасности. Если этот параметр изменён на `insecure`, предполагается, что среда сама по себе небезопасна, так как любой может получить доступ к клавиатуре. При изменении этой строки на `insecure` FreeBSD будет запрашивать пароль `root`, когда пользователь выбирает загрузку в однопользовательском режиме.
[NOTE]
====
-_Будьте осторожны при изменении этого параметра на `insecure`!_
-Если пароль пользователя `root` забыт, то загрузка в однопользовательском режиме всё ещё будет возможна, но может быть затруднена для тех, кто незнаком с процессом загрузки FreeBSD.
+_Будьте осторожны при изменении этой настройки на `insecure`!_ Если пароль `root` забыт, загрузка в однопользовательском режиме всё ещё возможна, но может быть затруднительна для тех, кто не знаком с процессом загрузки FreeBSD.
====
[[consoles-vidcontrol]]
=== Изменение видеорежимов консоли
-Установленный по умолчанию режим видео для консоли FreeBSD может быть изменён до значения 1024x768, 1280x1024 или любого другого, который поддерживается вашим монитором и видеокартой.
-Для использования другого видеорежима загрузите модуль `VESA`:
+Режим видео по умолчанию в консоли FreeBSD может быть изменён на 1024x768, 1280x1024 или любой другой, поддерживаемый графическим чипом и монитором. Для использования другого видео режима загрузите модуль `VESA`:
-[source,shell]
+[source, shell]
....
# kldload vesa
....
-Для определения того, какие видеорежимы поддерживаются вашим оборудованием, воспользуйтесь man:vidcontrol[1].
-Чтобы получить список поддерживаемых видеорежимов, выполните следующую команду:
+Для определения видеорежимов, поддерживаемых оборудованием, используйте man:vidcontrol[1]. Чтобы получить список поддерживаемых видеорежимов, выполните следующую команду:
-[source,shell]
+[source, shell]
....
# vidcontrol -i mode
....
-Выдача этой команды отобразит список видеорежимов, поддерживаемых оборудованием.
-Для выбора нового видеорежима укажите его при помощи man:vidcontrol[1], работая как пользователь `root`.
+Результат выполнения этой команды выводит список видеорежимов, поддерживаемых оборудованием. Чтобы выбрать новый видеорежим, укажите режим с помощью man:vidcontrol[1] от имени пользователя `root`:
-[source,shell]
+[source, shell]
....
# vidcontrol MODE_279
....
-Если новый видеорежим приемлем, то его можно определить постоянно устанавливаемым при загрузке, добавив его в `/etc/rc.conf`:
+Если новый видео-режим приемлем, его можно установить постоянным при загрузке, добавив в `/etc/rc.conf`:
[.programlisting]
....
@@ -216,122 +178,91 @@ allscreens_flags="MODE_279"
....
[[users-synopsis]]
-== Пользователи и основы управления учётными записями
+== Пользователи и базовая настройка учетных записей
-FreeBSD позволяет одновременное использование компьютера множеством пользователей.
-В то время, как в одно и то же время только один пользователь может сидеть перед экраном и использовать клавиатуру, войти в систему по сети может любое количество пользователей.
-Для того, чтобы использовать систему, каждый пользователь должен иметь собственную учётную запись.
+FreeBSD позволяет нескольким пользователям одновременно работать на компьютере. Хотя только один пользователь может находиться перед экраном и использовать клавиатуру в любой момент времени, любое количество пользователей может войти в систему через сеть. Для использования системы каждый пользователь должен иметь свою собственную учетную запись.
-В этом разделе описывается вот что:
+Эта глава описывает:
-* Различные виды пользовательских учётных записей в системе FreeBSD.
-* Как добавлять, удалять и изменять учётные записи пользователей.
-* Как устанавливать ограничения для управления ресурсами, к которым имеют доступ пользователи и группы пользователей.
-* Как создавать группы и добавлять пользователей в качестве их членов.
+* Типы учетных записей пользователей в системе FreeBSD.
+* Как добавлять, удалять и изменять учетные записи пользователей.
+* Как установить ограничения для контроля ресурсов, доступных пользователям и группам.
+* Как создавать группы и добавлять пользователей в качестве членов группы.
[[users-introduction]]
-=== Виды учётных записей
+=== Типы учетных записей
-Так как все доступы к системе FreeBSD осуществляются через учётные записи, и все процессы запускаются пользователями, то управление пользователями и учётными записями является важным вопросом.
+Поскольку весь доступ к системе FreeBSD осуществляется с использованием учетных записей, а все процессы выполняются пользователями, управление пользователями и учетными записями является важным.
-Существуют три основных вида учётных записей: системные учётные записи, пользовательские учётные записи и учётная запись суперпользователя.
+Существует три основных типа учетных записей: системные учетные записи, пользовательские учетные записи и учетная запись суперпользователя.
[[users-system]]
-==== Системные учётные записи
+==== Системные учетные записи
-Системные учётные записи используются для запуска таких сервисов, как DNS, электронная почта и веб-серверы.
-Причиной этого является безопасность; если бы все сервисы работали с полномочиями суперпользователя, то они могли бы действовать без ограничений.
+Системные учетные записи используются для запуска служб, таких как DNS, почтовые и веб-серверы. Причина этого — безопасность: если бы все службы работали от имени суперпользователя, они могли бы действовать без ограничений.
-Примерами системных учётных записей являются `daemon`, `operator`, `bind`, `news` и `www`.
+Примеры системных учетных записей: `daemon`, `operator`, `bind`, `news` и `www`.
-`nobody` является обобщённой непривилегированной системной учётной записью.
-Несмотря на это, чем больше сервисов используют `nobody`, тем больше файлов и процессов становятся связанными с этим пользователем, и, соответственно, тем болеепривилегированным становится этот пользователь.
+`nobody` — это общая непривилегированная системная учётная запись. Однако чем больше сервисов используют `nobody`, тем больше файлов и процессов будут связаны с этим пользователем, и, следовательно, тем больше привилегий он получит.
[[users-user]]
-==== Учётные записи пользователей
+==== Пользовательские учетные записи
-Учётные записи пользователей назначаются реальным людям и используются для входа в систему и её использования.
-Каждый человек, имеющий доступ к системе, должен иметь уникальную пользовательскую учётную запись.
-Это позволяет администратору понимать, кто и что делает, а также предотвращать затирание настроек одних пользователей другими пользователями.
+Пользовательские учетные записи назначаются реальным людям и используются для входа в систему и работы с ней. Каждый человек, получающий доступ к системе, должен иметь уникальную учетную запись. Это позволяет администратору отслеживать, кто и что делает, и предотвращает возможность изменения пользователями настроек друг друга.
-Каждый пользователь может настроить свою собственную рабочую среду, приспособленную к использованию системы, при помощи выбора оболочки, используемой по умолчанию, редактора, привязок комбинаций клавиш и настроек языкового окружения.
+Каждый пользователь может настроить свою собственную среду для удобной работы с системой, изменив настройки оболочки по умолчанию, редактора, сочетаний клавиш и языковых параметров.
-С каждой пользовательской учётной записью в системе FreeBSD связана определенная информация:
+Каждая учетная запись пользователя в системе FreeBSD имеет определенную связанную с ней информацию:
Имя пользователя::
-Имя пользователя вводится в строке приглашения `login:`.
-У каждого пользователя обязательно должно быть уникальное имя пользователя.
-Существует определённый набор правил для создания допустимых имен пользователей, документированных в man:passwd[5].
-Для того, чтобы поддерживать обратную совместимость с приложениями, рекомендуется использовать имена пользователей, состоящие из восьми или меньшего количества символов в нижнем регистре.
+Имя пользователя вводится в приглашении `login:`. У каждого пользователя должно быть уникальное имя. Существует ряд правил для создания допустимых имен пользователей, которые описаны в man:passwd[5]. Рекомендуется использовать имена, состоящие из восьми или менее строчных символов, для обеспечения обратной совместимости с приложениями.
Пароль::
-У каждой учётной записи имеется связанный с ней пароль.
+У каждой учетной записи есть связанный с ней пароль.
Идентификатор пользователя (UID)::
-Идентификатор пользователя (UID) является числом, используемым для однозначной идентификации этого пользователя в системе FreeBSD.
-Команды, позволяющие указывать имя пользователя, сначала будут преобразовывать его в UID.
-Рекомендуется использовать UID меньше 65535, так как более высокие значения могут вызвать проблемы совместимости с некоторым программным обеспечением.
+Идентификатор пользователя (UID) — это число, используемое для однозначной идентификации пользователя в системе FreeBSD. Команды, которые позволяют указать имя пользователя, сначала преобразуют его в UID. Рекомендуется использовать UID меньше 65535, так как более высокие значения могут вызвать проблемы совместимости с некоторым программным обеспечением.
Идентификатор группы (GID)::
-Идентификатор группы (GID) является числом, используемым для однозначной идентификации основной группы, которой принадлежит пользователь.
-Группы являются механизмом контроля доступа к ресурсам на основе GID пользователя, а не его UID.
-Это может значительно уменьшить размер некоторых конфигурационных файлов, а также позволяет пользователям быть членами более чем одной группы.
-Рекомендуется использовать значения GID, не превышающие 65535, так как превышение может вызвать сбои некоторого программного обеспечения.
+Идентификатор группы (GID) — это число, используемое для однозначной идентификации основной группы, к которой принадлежит пользователь. Группы представляют собой механизм управления доступом к ресурсам на основе GID пользователя, а не его UID. Это может значительно уменьшить размер некоторых конфигурационных файлов и позволяет пользователям быть членами более чем одной группы. Рекомендуется использовать GID 65535 или меньше, так как более высокие GID могут привести к неработоспособности некоторых программ.
-Класс доступа (login class)::
-Классы доступа являются расширением механизма групп, дающим дополнительную гибкость при адаптации системы к различным пользователям.
-Классы доступа описываются в разделе crossref:security[users-limiting,Настройка классов доступа].
+Класс входа (Login class)::
+Классы входа являются расширением механизма групп, предоставляющим дополнительную гибкость при настройке системы для различных пользователей. Подробнее классы входа рассматриваются в crossref:security[users-limiting,Настройка классов входа].
-Периодичность смены пароля::
-По умолчанию пароли не устаревают.
-Однако устаревание пароля может быть включено по отдельности у каждого пользователя, принуждая всех или некоторых пользователей менять свои пароли по истечении определённого периода времени.
+Время изменения пароля::
+По умолчанию пароли не имеют срока действия. Однако можно включить истечение срока действия пароля для отдельных пользователей, что заставит некоторых или всех пользователей изменить свои пароли по истечении определённого времени.
-Время действия учётной записи::
-По умолчанию во FreeBSD время действия учётных записей не ограничено.
-При создании учётных записей с ограниченным сроком действия, например, учётных записей студентов учебного заведения, укажите дату истечения действия учетной записи при помощи man:pw[8].
-После наступления указанной даты учётная запись не может быть использована для входа в систему, хотя каталоги и файлы, соответствующие этой учётной записи, не исчезнут.
+Время истечения срока действия учетной записи::
+По умолчанию FreeBSD не ограничивает срок действия учётных записей. При создании учётных записей с ограниченным сроком действия, например, для учащихся в школе, укажите дату истечения срока с помощью man:pw[8]. После истечения указанного времени учётная запись не может быть использована для входа в систему, хотя каталоги и файлы этой учётной записи останутся.
Полное имя пользователя::
-Имя пользователя является уникальным идентификатором учётной записи для FreeBSD, однако оно не обязательно соответствует реальному имени пользователя.
-Подобно комментариям, эта информация может содержать пробелы, заглавные буквы и иметь длину более 8 символов.
+Имя пользователя уникально идентифицирует учетную запись в FreeBSD, но не обязательно отражает реальное имя пользователя. Как и в случае с комментарием, эта информация может содержать пробелы, заглавные буквы и быть длиннее 8 символов.
Домашний каталог::
-Домашний каталог является полным путём к некоторому каталогу в системе.
-Это начальный каталог пользователя после его входа в систему.
-По общепринятому соглашению все домашние каталоги пользователей размещаются в `/home/username` или `/usr/home/username`.
-Пользователи хранят свои личные файлы и подкаталоги в своих домашних каталогах.
+Домашний каталог — это полный путь к каталогу в системе. Это стартовый каталог пользователя при входе в систему. Общепринятое соглашение — размещать все домашние каталоги пользователей в `/home/имя_пользователя` или `/usr/home/имя_пользователя`. Каждый пользователь хранит свои личные файлы и подкаталоги в собственном домашнем каталоге.
Оболочка пользователя::
-Оболочка обеспечивает стандартное пользовательское окружение для взаимодействия с системой.
-Существует множество различных видов оболочек, и у опытных пользователей будут свои предпочтения, которые могут быть отражены в настройках их учётных записей.
+Оболочка предоставляет пользователю среду по умолчанию для взаимодействия с системой. Существует множество различных видов оболочек, и опытные пользователи могут выбрать предпочтительную, настроив её в параметрах своей учётной записи.
[[users-superuser]]
-==== Учётная запись суперпользователя
+==== Учетная запись суперпользователя
-Учётная запись суперпользователя, обычно называемая `root`, используется для управления системой без ограничения полномочий.
-По этой причине она не должна использоваться для таких повседневных задач, как отправка и получение почты, общий анализ системы или программирование.
+Учетная запись суперпользователя, обычно называемая `root`, используется для управления системой без ограничений в правах. По этой причине её не следует использовать для повседневных задач, таких как отправка и получение почты, обычное изучение системы или программирование.
-В отличие от других пользовательских учётных записей, может работать без ограничений, и некорректное использование учётной записи суперпользователя может привести к грандиозным авариям.
-Учётные записи пользователей не способны уничтожить систему по ошибке, поэтому рекомендуется входить в систему как пользователь, и переключаться в режим суперпользователя только в случае, когда запускаемой команде требуются дополнительные полномочия.
+Суперпользователь, в отличие от других учётных записей, может работать без ограничений, и неправильное использование учётной записи суперпользователя может привести к серьёзным последствиям. Обычные пользователи не могут случайно разрушить операционную систему, поэтому рекомендуется входить в систему под обычной учётной записью и становиться суперпользователем только тогда, когда команде требуются дополнительные привилегии.
-Всегда проверяйте и перепроверяйте любые команды, запускаемые учётной записью суперпользователя, поскольку любой дополнительный пробел или отсутствующий символ может привести к безвозвратной потере данных.
+Всегда дважды и трижды проверяйте команды, выполняемые от имени суперпользователя, поскольку лишний пробел или пропущенный символ могут привести к невосполнимой потере данных.
-Имеется несколько способов получения полномочий суперпользователя.
-Хотя можно входить как пользователь `root`, это крайне не рекомендуется.
+Существует несколько способов получения привилегий суперпользователя. Хотя можно войти в систему как `root`, это крайне не рекомендуется.
-Для того, чтобы стать суперпользователем, вместо этого используйте man:su[1].
-Если при запуске этой команды указывается параметр `-`, то пользователь также получит настройки окружения учётной записи `root`.
-Пользователь, запускающий эту команду, должен входить в группу `wheel`, в противном случае команда не будет выполнена.
-Пользователь также должен знать пароль для учётной записи пользователя `root`.
+Вместо этого используйте man:su[1], чтобы стать суперпользователем. Если при выполнении этой команды указан параметр `-`, пользователь также унаследует окружение пользователя root. Пользователь, выполняющий эту команду, должен состоять в группе `wheel`, иначе команда завершится ошибкой. Пользователь также должен знать пароль учётной записи `root`.
-В этом примере пользователь становится суперпользователем только для запуска команды `make install`, так как этот шаг требует полномочий суперпользователя.
-После завершения работы команды пользователь набирает `exit` для того, чтобы выйтих из учётной записи суперпользователя и возвратиться к полномочиям собственной пользовательской учётной записи.
+В этом примере пользователь становится суперпользователем только для выполнения команды `make install`, так как этот шаг требует прав суперпользователя. После завершения команды пользователь вводит `exit`, чтобы выйти из учётной записи суперпользователя и вернуться к правам своей учётной записи.
-.Установка программы с полномочиями суперпользователя
+.Установка программы от имени суперпользователя
[example]
====
-
-[source,shell]
+[source, shell]
....
% configure
% make
@@ -341,26 +272,21 @@ Password:
# exit
%
....
-
====
-Стандартный механизм man:su[1] хорошо работает для отдельных инсталляций или небольших сетей с единственным системным администратором.
-Альтернативой является установка пакета или порта package:security/sudo[].
-Данное программное обеспечение обеспечивает протоколирование активностей и позволяет администратору настраивать, какие команды и какими пользователями могут запускаться с полномочиями суперпользователя.
+Встроенная система man:su[1] хорошо подходит для отдельных компьютеров или небольших сетей с одним системным администратором. Альтернативой является установка пакета package:security/sudo[] или порта. Это программное обеспечение обеспечивает журналирование действий и позволяет администратору настроить, какие пользователи могут выполнять определённые команды с правами суперпользователя.
[[users-modifying]]
-=== Управление учётными записями
+=== Управление учетными записями
-FreeBSD предоставляет набор различных команд для управления учётными записями пользователей.
-Наиболее часто используемые команды перечислены в разделе crossref:basics[users-modifying-utilities,Инструменты для управления учётными записями], атем даны некоторые примеры их использования.
-Обратитесь к страницам Справочника каждой утилиты для получения дополнительной информации и примеров использования.
+FreeBSD предоставляет различные команды для управления учетными записями пользователей. Наиболее распространенные команды перечислены в crossref:basics[users-modifying-utilities,Утилиты для управления учетными записями пользователей], а также приведены примеры их использования. Для получения дополнительной информации и примеров использования обратитесь к руководству (man) каждой утилиты.
[[users-modifying-utilities]]
-.Инструменты для управления учётными записями
+.Утилиты для управления учетными записями пользователей
[cols="25h,~"]
|===
| Команда
-| Краткое описание
+| Краткое содержание
|man:adduser[8]
|Рекомендуемое приложение командной строки для добавления новых пользователей.
@@ -369,42 +295,35 @@ FreeBSD предоставляет набор различных команд д
|Рекомендуемое приложение командной строки для удаления пользователей.
|man:chpass[1]
-|Гибкий инструмент для изменения информации в базе данных пользователей.
+|Гибкий инструмент для изменения информации в пользовательской базе данных.
|man:passwd[1]
|Инструмент командной строки для изменения паролей пользователей.
|man:pw[8]
-|Мощный и гибкий инструмент для изменения всех параметров пользовательских учётных записей.
+|Мощный и гибкий инструмент для изменения всех аспектов пользовательских учетных записей.
|man:bsdconfig[8]
-|Инструмент настройки системы с поддержкой управления учётными записями.
+|Утилита для настройки системы с поддержкой управления учётными записями.
|===
[[users-adduser]]
==== Добавление пользователя
-Рекомендуемой программой для добавления новых пользователей является man:adduser[8].
-При добавлении нового пользователя эта программа автоматически обновляет `/etc/passwd` и `/etc/group`.
-Она также создаёт домашний каталог для этого пользователя, копирует стандартные конфигурационные файлы из `/usr/share/skel` и опционально может отправить новому пользователю по электронной почте приветственное сообщение.
-Эта утилита должна запускаться с полномочиями суперпользователя.
+Рекомендуемая программа для добавления новых пользователей — man:adduser[8]. При добавлении нового пользователя эта программа автоматически обновляет `/etc/passwd` и `/etc/group`. Она также создаёт домашний каталог для нового пользователя, копирует в него стандартные конфигурационные файлы из `/usr/share/skel` и может отправить новому пользователю приветственное письмо. Эту утилиту необходимо запускать от имени суперпользователя.
-Утилита man:adduser[8] является интерактивной и следует шагам создания новой учётной записи пользователя.
-Как показано в разделе crossref:basics[users-modifying-adduser, Добавление пользователя во FreeBSD], вводите запрашиваемую информацию либо нажимайте kbd:[Return] для принятия значения по умолчанию, отображаемого в квадратных скобках.
-В этом примере пользователь был приглашён в группу `wheel`, позволяющей работать с полномочиями суперпользователя при помощи man:su[1].
-По окончании утилита выдаст запрос на создание ещё одного пользователя или завершение работы.
+Утилита man:adduser[8] интерактивна и проводит пользователя через шаги создания новой учётной записи. Как показано в crossref:basics[users-modifying-adduser, Добавление пользователя в FreeBSD], можно ввести необходимую информацию или нажать kbd:[Enter], чтобы принять значение по умолчанию, указанное в квадратных скобках. В этом примере пользователь был добавлен в группу `wheel`, что позволяет ему стать суперпользователем с помощью man:su[1]. По завершении утилита предложит создать ещё одного пользователя или выйти.
[[users-modifying-adduser]]
-.Добавление пользователя во FreeBSD
+.Добавление пользователя в FreeBSD
[example]
====
-
-[source,shell]
+[source, shell]
....
# adduser
....
-Выводимый текст должен быть похож на следующее:
+Вывод должен быть похож на следующий:
[.programlisting]
....
@@ -437,47 +356,45 @@ adduser: INFO: Successfully added (jru) to the user database.
Add another user? (yes/no): no
Goodbye!
....
-
====
[NOTE]
====
-Так как при наборе пароля он не отображается, будьте внимательны к опечаткам при его вводе при создании пользовательской учётной записи.
+Поскольку пароль не отображается при вводе, будьте внимательны, чтобы не ошибиться при создании учетной записи пользователя.
====
[[users-rmuser]]
==== Удаление пользователя
-Для полного удаления пользователя из системы запустите man:rmuser[8] с полномочиями суперпользователя.
-Эта команда выполняет следующие шаги:
+Чтобы полностью удалить пользователя из системы, выполните команду man:rmuser[8] с правами суперпользователя. Эта команда выполняет следующие действия:
[.procedure]
====
-. Удаляет пользовательскую информацию в man:crontab[1], если она имеется.
-. Удаляет все задания man:at[1], принадлежащие этому пользователю.
-. Отправляет сигнал SIGKILL всем процессам, владельцем которых является данный пользователь.
+. Удаляет запись пользователя в man:crontab[1], если она существует.
+. Удаляет все задания man:at[1], принадлежащие пользователю.
+. Посылает сигнал SIGKILL всем процессам, принадлежащим пользователю.
. Удаляет пользователя из локального файла паролей системы.
-. Удаляет домашний каталог пользователя (если владельцем этого каталога является данный пользователь), включая обработку символических ссылок в маршруте к реальному домашнему каталогу.
-. Удаляет файлы входящей почты, принадлежащие этому пользователю, из `/var/mail`.
-. Удаляет все файлы, владельцем которых является этот пользователь, из /tmp`, `/var/tmp` и `/var/tmp/vi.recover`.
-. Удаляет имя пользователя из всех групп, в которых он состоит, в `/etc/group`. Если какая-то группа становится пустой, а её название совпадает с именем пользователя, то эта группа удаляется; эта группа соответствует уникальной пользовательской группе, создаваемой man:adduser[8].
-. Удаляет все очереди сообщений, сегменты совместно используемой памяти и семафоры, владельцем которых является данный пользователь.
+. Удаляет домашний каталог пользователя (если он принадлежит пользователю), включая обработку символических ссылок в пути к фактическому домашнему каталогу.
+. Удаляет входящие почтовые файлы пользователя из `/var/mail`.
+. Удаляет все файлы, принадлежащие пользователю, из `/tmp`, `/var/tmp` и `/var/tmp/vi.recover`.
+. Удаляет имя пользователя из всех групп, к которым он принадлежит в `/etc/group`. (Если группа становится пустой и имя группы совпадает с именем пользователя, группа удаляется; это дополняет функциональность man:adduser[8] в части уникальных групп для каждого пользователя.)
+. Удаляет все очереди сообщений, сегменты разделяемой памяти и семафоры, принадлежащие пользователю.
====
-man:rmuser[8] не может использоваться для удаления учётной записи суперпользователя, поскольку это практически гарантированно означает массовые сбои системы.
+man:rmuser[8] не может быть использован для удаления учетных записей суперпользователя, так как это почти всегда свидетельствует о катастрофических последствиях.
По умолчанию используется интерактивный режим, как показано в следующем примере.
-.Интерактивное удаление учётной записи с помощью `rmuser`
+.`rmuser` Интерактивное удаление учетной записи
[example]
====
-
-[source,shell]
+[source, shell]
....
# rmuser jru
+
....
-Выводимый текст должен быть похож на следующее:
+Вывод должен быть похож на следующий:
[.programlisting]
....
@@ -487,42 +404,36 @@ Is this the entry you wish to remove? y
Remove user's home directory (/home/jru)? y
Removing user (jru): mailspool home passwd.
....
-
====
[[users-chpass]]
-==== Изменение информации о пользователе
+==== Изменить информацию о пользователе
-Любой пользователь может воспользоваться man:chpass[1] для изменения своего используемого по умолчанию командного процессора и персональной информации, связанной с его пользовательской учётной записью.
-Суперпользователь может использовать данную утилиту для изменения дополнительной информации об учётной записи любого пользователя.
+Любой пользователь может использовать man:chpass[1] для изменения своей оболочки по умолчанию и персональной информации, связанной с его учётной записью. Суперпользователь может использовать эту утилиту для изменения дополнительных параметров учётной записи любого пользователя.
-При запуске без указания параметров, за исключением необязательного имени пользователя, man:chpass[1] отображает редактор, содержащий информацию пользователя.
-Когда пользователь завершает работу с редактором, база данных пользователей обновляется новой информацией.
+Без указания опций, за исключением необязательного имени пользователя, man:chpass[1] отображает редактор с информацией о пользователе. После выхода пользователя из редактора база данных пользователей обновляется новой информацией.
[NOTE]
====
-Если утилита запущена не с полномочиями суперпользователя, то после выхода из редактора она запросит пароль пользователя.
+Этотa утилитa запрашивает пароль пользователя при выходе из редактора, если только она не запущена от имени суперпользователя.
====
-В разделе crossref:basics[users-modifying-chpass-su,Использование `chpass` с полномочиями суперпользователя] суперпользователь набрал `chpass jru` и просматривал поля, которые могут быть изменены для данного пользователя.
-Если вместо этого эта команда будет запущена пользователем `jru`, то будут отображены и доступны для редактирования только шесть последних полей.
-Это показано в разделе crossref:basics[users-modifying-chpass-ru,Использование `chpass` с полномочиями обычного пользователя].
+В crossref:basics[users-modifying-chpass-su,Использование `chpass` суперпользователем], суперпользователь ввел `chpass jru` и теперь видит поля, которые можно изменить для этого пользователя. Если же команду выполнит сам `jru`, будут отображены и доступны для редактирования только последние шесть полей. Это показано в crossref:basics[users-modifying-chpass-ru,Использование `chpass` обычным пользователем].
[[users-modifying-chpass-su]]
-.Использование `chpass` с полномочиями суперпользователя
+.Использование `chpass` с правами суперпользователя
[example]
====
-
-[source,shell]
+[source, shell]
....
-# chpass
+# chpass jru
....
-Выводимый текст должен быть похож на следующее:
+Вывод должен быть похож на следующий:
[.programlisting]
....
-#Changing user database information for jru.
+# Changing user database information for jru.
Login: jru
Password: *
Uid [#]: 1001
@@ -541,10 +452,10 @@ Other information:
====
[[users-modifying-chpass-ru]]
-.Использование `chpass` с полномочиями обычного пользователя
+.Использование `chpass` обычным пользователем
[example]
====
-[source,shell]
+[source, shell]
....
#Changing user database information for jru.
Shell: /usr/local/bin/zsh
@@ -558,26 +469,23 @@ Other information:
[NOTE]
====
-Команды man:chfn[1] и man:chsh[1] являются ссылками на man:chpass[1], так же, как и man:ypchpass[1], man:ypchfn[1] и man:ypchsh[1].
-Так как NIS поддерживается автоматически, указание `yp` перед командой не обязательно.
-Настройка NIS рассматривается в <<network-servers>>.
+Команды man:chfn[1] и man:chsh[1] являются ссылками на man:chpass[1], как и man:ypchpass[1], man:ypchfn[1] и man:ypchsh[1]. Поскольку поддержка NIS автоматическая, указывать `yp` перед командой не требуется. Настройка NIS описана в crossref:network-servers[network-servers,Сетевые серверы].
====
[[users-passwd]]
==== Изменение пароля пользователя
-Любой пользователь может легко сменить собственный пароль при помощи man:passwd[1].
-Для предотвращения случайных или неавторизованных изменений перед установкой нового пароля эта команду будут запрашивать первоначальный пароль пользователя:
+Любой пользователь может легко изменить свой пароль с помощью man:passwd[1]. Для предотвращения случайных или несанкционированных изменений эта команда запросит исходный пароль пользователя перед установкой нового пароля:
-.Изменение собственного пароля
+.Смена собственного пароля
[example]
====
-[source,shell]
+[source, shell]
....
% passwd
....
-Выводимый текст должен быть похож на следующее:
+Вывод должен быть похож на следующий:
[.programlisting]
....
@@ -588,22 +496,19 @@ Retype new password:
passwd: updating the database...
passwd: done
....
-
====
-Суперпользователь может сменить пароль любого пользователя, указав имя пользователя при запуске man:passwd[1].
-В тех случаях, когда эта утилита работает с полномочиями суперпользователя, она не будет запрашивать текущий пароль пользователя.
-Это позвляет менять пароль в случае, когда пользователь не может вспомнить первоначальный пароль.
+Суперпользователь может изменить пароль любого пользователя, указав имя пользователя при запуске man:passwd[1]. При запуске этой утилиты с правами суперпользователя она не запрашивает текущий пароль пользователя. Это позволяет изменить пароль, если пользователь не может вспомнить исходный пароль.
.Изменение пароля другого пользователя суперпользователем
[example]
====
-[source,shell]
+[source, shell]
....
# passwd jru
....
-Выводимый текст должен быть похож на следующее:
+Вывод должен быть похож на следующий:
[.programlisting]
....
@@ -617,49 +522,38 @@ passwd: done
[NOTE]
====
-Как и в случае с man:chpass[1], man:yppasswd[1] является ссылкой на man:passwd[1], так что NIS работает с любой из команд.
+Как и man:chpass[1], man:yppasswd[1] является ссылкой на man:passwd[1], поэтому NIS работает с любой из этих команд.
====
[[users-pw]]
-==== Создание, удаление, изменение и просмотр пользователей и групп в системе
+==== Создание, удаление, изменение и отображение пользователей и групп системы
-Утилита man:pw[8] может создавать, удалять, изменять и отображать пользователей и группы.
-Она функционирует как пользовательский интерфейс к системным файлам пользователей и групп.
-man:pw[8] обладает очень мощным набором параметров командной строки, что делает её подходящей для использования в скриптах командного процессора, однако новым пользователям она может показаться более сложной, чем другие команды, представленные в этом разделе.
+Утилита man:pw[8] может создавать, удалять, изменять и отображать пользователей и группы. Она работает как интерфейс к системным файлам пользователей и групп. man:pw[8] обладает мощным набором параметров командной строки, что делает её пригодной для использования в shell-скриптах, но новым пользователям она может показаться сложнее других команд, представленных в этом разделе.
[[users-groups]]
=== Управление группами
-Группа представляет собой список пользователей.
-Группа идентифицируется по её имени и GID.
-Во FreeBSD для определения того, что имеет право делать процесс, ядро использует UID процесса и список групп, которым он принадлежит.
-В большинстве случаев GID пользователя или процесса соотносится с первой группой из списка.
-
-Соответствия имени группы и GID перечислены в `/etc/group`.
-Это обычный текстовый файл с четырьмя полями, разделёнными двоеточиями.
-Первое поле соответствует имени группы, второе является зашифрованным паролем, третье содержит GID, а четвёртое является списком членов группы, разделённых запятыми.
-За полным описанием синтаксиса обратитесь к man:group[5].
+Группа — это список пользователей. Группа идентифицируется по своему названию и GID. В FreeBSD ядро использует UID процесса и список групп, к которым он принадлежит, чтобы определить, что процесс может делать. В большинстве случаев под GID пользователя или процесса обычно подразумевается первая группа в списке.
-Суперпользователь может изменять `/etc/group` при помощи какого-либо текстового редактора, однако предпочтительным способом является редактирование файла с группами при помощи утилиты man:vigr[8], так как она может отловить некоторые распространённые ошибки.
+Соответствие имен групп и GID перечислено в `/etc/group`. Это простой текстовый файл с четырьмя полями, разделенными двоеточиями. Первое поле — имя группы, второе — зашифрованный пароль, третье — GID, а четвертое — список участников, разделенных запятыми. Полное описание синтаксиса смотрите в man:group[5].
-В качестве альтернативы для добавления и редактирования групп можно использовать man:pw[8].
-Например, для добавления группы с именем `teamtwo` и последующей проверки её существования:
+Суперпользователь может изменить `/etc/group` с помощью текстового редактора, однако предпочтительнее редактировать файл групп с помощью man:vigr[8], так как это позволяет избежать некоторых распространённых ошибок. Альтернативно, для добавления и редактирования групп можно использовать man:pw[8]. Например, чтобы добавить группу с именем `teamtwo` и затем убедиться, что она существует:
[WARNING]
====
-При использовании группы operator следует соблюдать осторожность, так как при этом могут быть ненамеренно даны полномочия этой группы, близкие к полномочиям суперпользователя, включая, но не ограничиваясь, правами на завершение работы системы и её перезапуск, а также на доступ ко всем объектам в `/dev`.
+При использовании группы operator необходимо соблюдать осторожность, так как могут быть предоставлены непредусмотренные привилегии, аналогичные правам суперпользователя, включая, но не ограничиваясь, возможностью выключения системы, перезагрузки и доступа ко всем элементам в `/dev` в рамках группы.
====
-.Добавление группы с использованием man:pw[8]
+.Добавление группы с помощью man:pw[8]
[example]
====
-[source,shell]
+[source, shell]
....
# pw groupadd teamtwo
# pw groupshow teamtwo
....
-Выводимый текст должен быть похож на следующее:
+Вывод должен быть похож на следующий:
[.programlisting]
....
@@ -667,20 +561,18 @@ teamtwo:*:1100:
....
====
-В этом примере `1100` является GID группы `teamtwo`.
-На данный момент в `teamtwo` нет участников.
-Эта команда добавит `jru` в группу `teamtwo` в качестве участника.
+В этом примере `1100` — это GID группы `teamtwo`. На данный момент в `teamtwo` нет участников. Эта команда добавит `jru` в качестве участника `teamtwo`.
-.Добавление учётных записей пользователей в новую группу при помощи man:pw[8]
+.Добавление пользовательских учетных записей в новую группу с помощью man:pw[8]
[example]
====
-[source,shell]
+[source, shell]
....
# pw groupmod teamtwo -M jru
# pw groupshow teamtwo
....
-Выводимый текст должен быть похож на следующее:
+Вывод должен быть похож на следующий:
[.programlisting]
....
@@ -688,21 +580,18 @@ teamtwo:*:1100:jru
....
====
-Аргументом к параметру `-M` является разделённый запятыми список пользователей, которых нужно добавить в новую (пустую) группу или заменить участников существующей группы.
-С точки зрения пользователя такое членство в группе отличается от основной группы, указанной в файле паролей (и является дополнительным к ней).
-Это значит, что пользователь не будет отображаться как участник группы при использовании параметра `groupshow` с man:pw[8], но будет отображаться при запросе информации с помощью man:id[1] или аналогичного инструмента.
-При использовании man:pw[8] для добавления пользователя в группу она работает только с `/etc/group` и не пытается считывать дополнительные сведения из `/etc/passwd`.
+Аргумент `-M` представляет собой разделённый запятыми список пользователей, которые будут добавлены в новую (пустую) группу или заменят членов существующей группы. Для пользователя это членство в группе отличается от (и дополняет) его основной группы, указанной в файле паролей. Это означает, что пользователь не будет отображаться как член группы при использовании `groupshow` с man:pw[8], но будет виден при запросе информации через man:id[1] или аналогичный инструмент. Когда man:pw[8] используется для добавления пользователя в группу, он только изменяет `/etc/group` и не пытается читать дополнительные данные из `/etc/passwd`.
.Добавление нового участника в группу с помощью man:pw[8]
[example]
====
-[source,shell]
+[source, shell]
....
# pw groupmod teamtwo -m db
# pw groupshow teamtwo
....
-Выводимый текст должен быть похож на следующее:
+Вывод должен быть похож на следующий:
[.programlisting]
....
@@ -710,18 +599,17 @@ teamtwo:*:1100:jru,db
....
====
-В этом примере аргументом к параметру `-m` является разделённый запятыми список пользователей, которые должны быть добавлены в группу.
-В отличие от предыдущего примера, эти пользователи присоединяются к группе, а не замещают существующих в группе пользователей.
+В этом примере аргумент `-m` представляет собой список пользователей, разделённых запятыми, которые будут добавлены в группу. В отличие от предыдущего примера, эти пользователи добавляются к группе и не заменяют уже существующих в ней пользователей.
-.Использование man:id[1] для определения принадлежности к группе
+.Использование man:id[1] для определения членства в группе
[example]
====
-[source,shell]
+[source, shell]
....
% id jru
....
-Выводимый текст должен быть похож на следующее:
+Вывод должен быть похож на следующий:
[.programlisting]
....
@@ -729,77 +617,69 @@ uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)
....
====
-В этом примере `jru` является членом групп `jru` и `teamtwo`.
+В этом примере `jru` является участником групп `jru` и `teamtwo`.
-За дополнительной информацией об этой команде и о формате `/etc/group` обратитесь к man:pw[8] и man:group[5].
+Для получения дополнительной информации об этой команде и формате файла `/etc/group` обратитесь к man:pw[8] и man:group[5].
[[permissions]]
-== Права доступа
+== Разрешения
-Во FreeBSD с каждым файлом и каталогом связан набор прав доступа, для просмотра и изменения которых доступны несколько утилит.
-Понимание того, как работают эти права доступа, необходимо для обеспечения того, чтобы пользователи могли получать доступ к файлам, которые им нужны, и не могли некорректно обращаться к файлам, используемым операционной системой или владельцами которых является другие пользователи.
+В FreeBSD каждому файлу и каталогу сопоставлен набор прав доступа, и существует несколько утилит для просмотра и изменения этих прав. Понимание работы прав доступа необходимо для того, чтобы пользователи могли получать доступ к нужным им файлам, но не имели возможности несанкционированного доступа к файлам операционной системы или файлам других пользователей.
-В этом разделе описываются традиционные полномочия UNIX(R), используемые во FreeBSD.
-Для более тонкого управления доступом в файловой системе обратитесь к разделу crossref:fs-acl[fs-acl,Списки управления доступом].
+В этом разделе рассматриваются традиционные права доступа UNIX(R), используемые в FreeBSD. Для более детального управления доступом к файловой системе обратитесь к crossref:security[fs-acl,Списки контроля доступа].
-В UNIX(R) базовые права доступа назначаются с использованием трёх типов доступа: чтение, запись и исполнение.
-Эти типы доступа используются для определения доступа к файлу для владельца файла, для группы и для прочих пользователей (всех остальных).
-Полномочия на чтение, запись и исполнение могут быть представлены в виде букв `r`, `w` и `x`.
-Также они могут быть представлены в виде двоичных чисел, так как каждое полномочие либо включено, либо выключено (`0`).
-При представлении в виде числа порядок прочтения всегда имеет вид `rwx`, где `r` имеет значение `4`, `w` имеет значение `2` и `x` равно `1`.
+В UNIX(R) базовые права доступа назначаются с использованием трех типов доступа: чтение, запись и выполнение. Эти типы доступа определяют права на файл для владельца, группы и остальных (всех остальных). Права на чтение, запись и выполнение могут быть представлены буквами `r`, `w` и `x`. Они также могут быть представлены в виде двоичных чисел, так как каждое право либо включено, либо выключено (`0`). При представлении в виде чисел порядок всегда читается как `rwx`, где `r` имеет значение `4`, `w` — `2`, а `x` — `1`.
-В Таблице 4.1 сведены возможные цифровые и символьные комбинации.
-В столбце "Список файлов каталога" символ `-` используется для отражения отсутствующего права доступа.
+Таблица 4.1 обобщает возможные числовые и буквенные варианты. В столбце "Список файлов каталога" символ `-` используется для обозначения отключённого разрешения.
.Права доступа UNIX(R)
[cols="1,1,1", frame="none", options="header"]
|===
| Значение
-| Права доступа
+| Разрешение
| Список файлов каталога
|0
-|Ничего не разрешено
+|Нет чтения, нет записи, нет выполнения
|`---`
|1
-|Нельзя читать и писать, разрешено исполнять
+|Нет чтения, нет записи, выполнение
|`--x`
|2
-|Нельзя читать и исполнять, разрешено писать
+|Нет чтения, записи, выполнения
|`-w-`
|3
-|Нельзя читать, разрешено писать и исполнять
+|Нет прав на чтение, запись, выполнение
|`-wx`
|4
-|Разрешено читать, нельзя писать и исполнять
+|Чтение, нет записи, нет выполнения
|`r--`
|5
-|Разрешено читать и исполнять, нельзя писать
+|Чтение, нет записи, выполнение
|`r-x`
|6
-|Разрешено читать и писать, нельзя исполнять
+|Чтение, запись, без выполнения
|`rw-`
|7
-|Разрешено все
+|Чтение, запись, выполнение
|`rwx`
|===
-Используйте параметр `-l` с командой man:ls[1] для получения подробного списка содержимого каталога, включающего столбец с информацией о полномочиях на файл для владельца, группы и всех остальных.
-Например, `ls -l` в произвольно выбранном каталоге может выдать следующее:
+Используйте аргумент `-l` с man:ls[1] для просмотра длинного списка каталога, который включает колонку с информацией о правах доступа к файлу для владельца, группы и всех остальных. Например, `ls -l` в произвольном каталоге может вывести:
-[source,shell]
+[source, shell]
....
% ls -l
....
-Выводимый текст должен быть похож на следующее:
+Вывод должен быть похож на следующий:
[.programlisting]
....
@@ -809,132 +689,111 @@ total 530
-rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt
....
-В строке, соответствующей `myfile`, первый (самый левый) символ в первом столбце указывает на то, обычный ли это файл, каталог, специальное символьное устройство, сокет или какое-то другое специальное псевдофайловое устройство.
-В данном примере `-` указывает на то, что это обычный файл.
-Следующие три символа (в данном примере это `rw-`) определяют полномочия владельца файла.
-Последующие три символа, `r--`, определяют полномочия группы, которой принадлежит файл.
-Последние три символа, `r--`, определяют полномочия для всего остального мира.
-Дефис означает, что полномочия отсутствуют.
-В этом примере полномочия установлены таким образом, что владелец может выполнять операции чтения и записи в файл, группа может читать файл, а весь остальной мир может только читать файл.
-В соответствии с таблицей выше, полномочия для этого файлы могли бы быть представлены как `644`, где каждая цифра представляет три части полномочий на файл.
+Рассматривая строку для файла `myfile`, первый `(крайний слева)` символ указывает, является ли этот файл обычным файлом, каталогом, специальным символьным устройством, сокетом или любым другим специальным псевдофайловым устройством. В данном примере символ `-` обозначает обычный файл. Следующие три символа, в этом примере `rw-`, указывают права для владельца файла. Следующие три символа, `r--`, указывают права для группы, к которой принадлежит файл. Последние три символа, `r--`, указывают права для всех остальных. Дефис означает, что право отключено. В этом примере права настроены так, что владелец может читать и записывать файл, группа может читать файл, а все остальные могут только читать файл. Согласно приведённой выше таблице, права для этого файла будут `644`, где каждая цифра представляет одну из трёх частей прав файла.
-Как система управляет полномочиями на устройства?
-Во FreeBSD большинство устройств представлено в виде файлов, которые программы могут открывать, читать и записывать в них данные.
-Эти специальные файлы устройств размещаются в каталоге `/dev`.
+Как система управляет правами доступа к устройствам? FreeBSD рассматривает большинство аппаратных устройств как файлы, которые программы могут открывать, читать и записывать в них данные. Эти специальные файлы устройств хранятся в `/dev/`.
-Каталоги обрабатываются так же, как и файлы.
-У них также имеются полномочия на чтение, запись и выполнение.
-Бит исполнимости для каталога имеет несколько другой, отличающийся от файлов, смысл.
-Когда каталог помечен как исполняемый, это означает, что в него можно перейти с помощью команды man:cd[1].
-Это также означает, что можно получить доступ к файлам в данном каталоге с учётом полномочий, установленных для этих файлов.
+Каталоги также рассматриваются как файлы. У них есть права на чтение, запись и выполнение. Бит выполнения для каталога имеет несколько иное значение, чем для файлов. Если каталог помечен как исполняемый, это означает, что в него можно перейти с помощью man:cd[1]. Это также означает, что можно получить доступ к файлам внутри этого каталога, в зависимости от прав на сами файлы.
-Для того, чтобы получить список файлов в каталоге, на него должны быть установлены полномочия на чтение.
-Для того, чтобы удалить из каталога какой-либо файл, имя которого известно, необходимо иметь полномочия на запись _и_ исполнение каталога, содержащего соответствующий файл.
+Для выполнения списка файлов в каталоге необходимо установить право на чтение для этого каталога. Чтобы удалить файл, имя которого известно, требуются права на запись _и_ выполнение для каталога, содержащего этот файл.
-Существуют и другие права доступа, но они как правило используются в особых случаях, например, setuid-бит на выполняемые файлы и sticky-бит на каталоги.
-За дополнительной информацией о файловых полномочиях и о том, как их устанавливать, обратитесь к man:chmod[1].
+Существуют и другие биты разрешений, но они в основном используются в особых случаях, таких как setuid-бинарники и sticky-каталоги. Для получения дополнительной информации о правах доступа к файлам и их настройке обратитесь к man:chmod[1].
-=== Символическое обозначение полномочий
+=== Символьные права доступа
-Символическое обозначение полномочий использует буквы вместо восьмеричных значений для назначения прав на файлы или каталоги.
-Символическое обозначение использует формат (кто) (действие) (полномочия), при этом доступны следующие значения:
+Символьные права доступа используют символы вместо восьмеричных значений для назначения прав доступа файлам или каталогам. Синтаксис символьных прав доступа имеет вид (кто) (действие) (права доступа), где доступны следующие значения:
[.informaltable]
[cols="1,1,1", frame="none", options="header"]
|===
| Опция
| Буква
-| Значение
+| Представляет
|(кто)
|u
-|Пользователь (User)
+|Пользователь
|(кто)
|g
-|Группа (Group)
+|Владелец группы
|(кто)
|o
-|Другие (Other)
+|Другие
|(кто)
|a
-|Все (All, "world")
+|Все (all, "world")
|(действие)
|+
-|Добавление прав
+|Добавление разрешений
|(действие)
|-
-|Удаление прав
+|Удаление прав доступа
|(действие)
|=
-|Явная установка прав
+|Явно заданные разрешения
-|(права)
+|(права доступа)
|r
-|Чтение (Read)
+|Чтение
-|(права)
+|(права доступа)
|w
-|Запись (Write)
+|Запись
-|(права)
+|(права доступа)
|x
-|Выполнение (Execute)
+|Выполнение
-|(права)
+|(права доступа)
|t
-|Sticky бит
+|Бит закрепления (sticky)
-|(права)
+|(права доступа)
|s
-|SUID или SGID
+|Установка UID или GID
|===
-Эти значения используются с командой man:chmod[1], но с буквами вместо цифр.
-Например, следующая команда блокирует доступ к _FILE_ как для членов группы, соответствующей _FILE_, так и для всех прочих пользователей:
+Эти значения используются с man:chmod[1], но с буквами вместо чисел. Например, следующая команда запретит доступ к _FILE_ как членам группы, связанной с _FILE_, так и всем остальным пользователям:
-[source,shell]
+[source, shell]
....
% chmod go= FILE
....
-Для изменения более чем одного набора прав можно применить список значений, разделённых запятыми.
-Например, следующая команда удаляет права группы и "всех остальных" на запись в _FILE_ и добавляет права на выполнение любым пользователям:
+Список, разделённый запятыми, может быть указан, если к файлу необходимо применить более одного изменения. Например, следующая команда удаляет разрешение на запись для группы и всех остальных пользователей у _FILE_, а также добавляет разрешение на выполнение для всех:
-[source,shell]
+[source, shell]
....
% chmod go-w,a+x FILE
....
-=== Флаги файлов в FreeBSD
+=== Флаги файлов FreeBSD
-Кроме прав доступа к файлам, FreeBSD поддерживает использование "файловых флагов".
-Эти флаги привносят дополнительный уровень защиты и контроля над файлами, но не каталогами.
-При помощи этих флагов даже пользователь `root` может быть ограничен в удалении или изменении файлов.
+В дополнение к правам доступа к файлам FreeBSD поддерживает использование "флагов файлов". Эти флаги добавляют дополнительный уровень безопасности и контроля над файлами, но не над каталогами. С помощью флагов файлов даже пользователь `root` может быть лишён возможности удалять или изменять файлы.
-Файловые флаги изменяются при помощи man:chflags[1].
-К примеру, для установки системного флага неудаляемости на файл `file1`, выполните следующую команду:
+Флаги файлов изменяются с помощью man:chflags[1]. Например, чтобы установить системный флаг «неудаляемый» для файла `file1`, выполните следующую команду:
-[source,shell]
+[source, shell]
....
# chflags sunlink file1
....
-Чтобы отключить системный флаг неудаляемости, укажите "no" перед `sunlink`:
+Чтобы отключить системный флаг "неудаляемый", добавьте "no" перед `sunlink`:
-[source,shell]
+[source, shell]
....
# chflags nosunlink file1
....
-Чтобы просмотреть флаги какого-либо файла, используйте команду man:ls[1] с параметрами `-lo`:
+Чтобы просмотреть флаги файла, используйте `-lo` с man:ls[1]:
-[source,shell]
+[source, shell]
....
# ls -lo file1
....
@@ -944,136 +803,121 @@ total 530
-rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1
....
-Некоторые файловые флаги могут быть установлены или сняты только пользователем `root`.
-В остальных случаях флаги файла может устанавливать его владелец.
-Обратитесь к man:chflags[1] и man:chflags[2] для получения дополнительной информации.
+Некоторые флаги файлов могут быть добавлены или удалены только пользователем `root`. В остальных случаях владелец файла может устанавливать его флаги. Дополнительную информацию можно найти в man:chflags[1] и man:chflags[2].
-=== Права доступа setuid, setgid и sticky
+=== Установленные биты setuid, setgid и sticky
-В дополнение к рассмотренным выше правам доступа и флагам файлов необходимо также упомянуть еще три вида прав доступа, о которых должны знать все системные администраторы.
-Это полномочия `setuid`, `setgid` и `sticky`.
+Помимо уже рассмотренных прав доступа, существуют три специальных параметра, которые должны знать все администраторы. Это права `setuid`, `setgid` и `sticky`.
-Эти биты играют важную роль в определённых моментах работы UNIX(R), так как они предоставляют функциональность, расширяющую права обычного пользователя.
-Чтобы понять, как они работают, необходимо отметить различия между реальным идентификатором пользователя (UID) и действующим идентификатором пользователя (effective UID, EUID).
+Эти настройки важны для некоторых операций UNIX(R), так как предоставляют функциональность, обычно недоступную обычным пользователям. Чтобы понять их, необходимо отметить разницу между реальным идентификатором пользователя (real user ID) и эффективным идентификатором пользователя (effective user ID).
-Реальный UID - это идентификатор пользователя, запустившего процесс на выполнение. Действующий UID (EUID) - это идентификатор пользователя, с которым на самом деле выполняется процесс.
-Например, утилита man:passwd[1] во время смены пароля пользователем запускается с реальным ID пользователя.
-Однако для того, чтобы актуализировать базу данных паролей, команда работает с действующим ID пользователя `root`.
-Это позволяет пользователям изменять их пароли и не наблюдать ошибку `Permission Denied`.
+Реальный идентификатор пользователя (UID) — это UID, который владеет или запускает процесс. Эффективный идентификатор пользователя — это UID, от имени которого выполняется процесс. Например, man:passwd[1] запускается с реальным UID, когда пользователь меняет свой пароль. Однако для обновления базы данных паролей команда выполняется с эффективным UID пользователя `root`. Это позволяет пользователям изменять свои пароли без ошибки `Permission Denied`.
-Полномочие setuid может быть задано в символьном виде добавлением права доступа `s` для пользователя, как в следующем примере:
+Разрешение setuid может быть добавлено символически путем добавления права `s` для пользователя, как в следующем примере:
-[source,shell]
+[source, shell]
....
# chmod u+s suidexample.sh
....
-Полномочие setuid также можно задать, добавив число четыре (4) перед численным представлением набора полномочий, как показано в следующем примере:
+Права setuid также могут быть установлены путем добавления числа четыре (4) перед набором прав, как показано в следующем примере:
-[source,shell]
+[source, shell]
....
# chmod 4755 suidexample.sh
....
-Теперь права доступа на `suidexample.sh` выглядят подобно следующему:
+Разрешения для файла `suidexample.sh` теперь выглядят следующим образом:
[.programlisting]
....
-rwsr-xr-x 1 trhodes trhodes 63 Aug 29 06:36 suidexample.sh
....
-Заметьте, что `s` теперь является частью набора полномочий, относящихся к владельцу файла, и заменяет бит выполнимости.
-Это позволяет работать утилитам, которым требуется повышенный уровень полномочий, таким как man:passwd[1].
+Обратите внимание, что `s` теперь является частью набора прав для владельца файла, заменив бит исполнения. Это позволяет создавать программы, требующие повышенных прав, таких как man:passwd[1].
[NOTE]
====
-Указание параметра `nosuid` при запуске команды man:mount[8] приводит к тому, что такие программы перестают работать без выдачи предупреждений пользователям.
-Указанная возможность не является абсолютно надёжно работающей, так как обработчик `nosuid` может её обойти.
+Опция `nosuid` в man:mount[8] приведёт к тихому отказу таких бинарных файлов без уведомления пользователя. Эта опция не полностью надежна, так как обёртка `nosuid` может её обойти.
====
-Чтобы увидеть, как это работает, откройте два терминала.
-В одном из них наберите `passwd`, работая как обычный пользователь.
-Пока утилита ждёт ввода нового пароля, просмотрите таблицу процессов и обратите внимание на информацию о пользователе процесса man.passwd[1].
+Чтобы наблюдать это в реальном времени, откройте два терминала. В одном введите `passwd` как обычный пользователь. Пока команда ожидает ввода нового пароля, проверьте таблицу процессов и посмотрите информацию о пользователе для man:passwd[1]:
-В терминале А:
+В терминале A:
-[source,shell]
+[source, shell]
....
Changing local password for trhodes
Old Password:
....
-В терминале Б:
+В терминале B:
-[source,shell]
+[source, shell]
....
# ps aux | grep passwd
....
-[source,shell]
+[source, shell]
....
trhodes 5232 0.0 0.2 3420 1608 0 R+ 2:10AM 0:00.00 grep passwd
root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd
....
-Хотя man.passwd[1] запущена от обычного пользователя, она использует действующий UID пользователя `root`.
+Хотя man:passwd[1] запускается от имени обычного пользователя, он использует эффективный UID `root`.
-Полномочие `setgid` выполняет ту же функцию, что и `setuid`; отличие заключается в том, что изменяются настройки прав для группы.
-Когда выполняются приложение или утилита с этой настройкой, то им назначаются полномочия на основании группы, владеющей файлом, а не пользователя, запустившего процесс.
+Разрешение `setgid` выполняет ту же функцию, что и разрешение `setuid`, за исключением того, что оно изменяет настройки группы. Когда приложение или утилита запускается с этой настройкой, оно получает разрешения в соответствии с группой, которой принадлежит файл, а не пользователем, запустившим процесс.
-Чтобы установить на какой-либо файл полномочие `setgid` в символическом виде, добавьте право доступа для группы при помощи man:chmod[1]:
+Чтобы установить право `setgid` на файл в символьном виде, добавьте право `s` для группы с помощью man:chmod[1]:
-[source,shell]
+[source, shell]
....
# chmod g+s sgidexample.sh
....
-Альтернативным способом является выполнение команды man:chmod[1] с добавленным в начале числом два (2):
+В качестве альтернативы укажите в man:chmod[1] ведущую двойку (2):
-[source,shell]
+[source, shell]
....
# chmod 2755 sgidexample.sh
....
-В следующей выдаче обратите внимание на наличие `s` в перечне прав доступа для группы:
+В следующем листинге обратите внимание, что символ `s` теперь находится в поле, предназначенном для настроек прав группы:
-[source,shell]
+[source, shell]
....
-rwxr-sr-x 1 trhodes trhodes 44 Aug 31 01:49 sgidexample.sh
....
[NOTE]
====
-В этих примерах, несмотря на то, что сценарий оболочки является исполняемым файлом, он не будет выполняться с другим действующим идентификатором пользователя (EUID). Так происходит потому, что сценариям командного интерпретатора недоступен системный вызов man:setuid[2].
+В этих примерах, даже если рассматриваемый shell-скрипт является исполняемым файлом, он не будет запускаться с другим EUID или эффективным идентификатором пользователя. Это происходит потому, что shell-скрипты не могут использовать системные вызовы man:setuid[2].
====
-Позволяя повышать права доступа, биты полномочий `setuid` и `setgid` могут снижать безопасность системы.
-Третье специальное полномочие, `sticky bit`, может усиливать безопасность системы.
+`setuid` и `setgid` биты прав могут снизить безопасность системы, предоставляя повышенные привилегии. Третий специальный бит прав, `sticky bit`, напротив, может повысить безопасность системы.
-`Sticky bit`, будучи установленным на каталог, позволяет производить удаление файла только его владельцем.
-Это полезно для предотвращения удаления файлов в общедоступных каталогах, таких как `/tmp`, пользователями, которые не являются владельцами файлов.
-Чтобы использовать это полномочие, добавьте файлу режим `t`:
+Когда `sticky bit` установлен на директории, он разрешает удаление файлов только владельцу файла. Это полезно для предотвращения удаления файлов в общедоступных директориях, таких как `/tmp`, пользователями, не являющимися владельцами файла. Чтобы использовать этот режим доступа, добавьте режим `t` к файлу:
-[source,shell]
+[source, shell]
....
# chmod +t /tmp
....
-Альтернативным способов является добавление единицы (1) перед набором прав доступа:
+В качестве альтернативы можно добавить единицу (1) перед набором прав доступа:
-[source,shell]
+[source, shell]
....
# chmod 1777 /tmp
....
-Полномочие `sticky bit` будет отображаться как `t` в самом конце набора прав доступа:
+Разрешение `sticky bit` отображается как `t` в самом конце набора разрешений:
-[source,shell]
+[source, shell]
....
# ls -al / | grep tmp
....
-[source,shell]
+[source, shell]
....
drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmp
....
@@ -1081,21 +925,11 @@ drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmp
[[dirstructure]]
== Структура каталогов
-Структура каталогов FreeBSD является фундаментальным вопросом в достижении общего понимания устройства всей системы.
-Самым важным понятием является, несомненно, корневой каталог, или "/".
-Этот каталог является самым первым, монтируемым на этапе загрузки и содержащим базовую систему, необходимую для подготовки операционной системы к работе в многопользовательском режиме.
-Корневой каталог также содержит точки монтирования для других файловых систем, которые монтируются во время перехода к функционированию в многопользовательском режиме.
+Иерархия каталогов FreeBSD является основой для общего понимания системы. Наиболее важным каталогом является корневой или "/". Этот каталог монтируется первым при загрузке и содержит базовую систему, необходимую для подготовки операционной системы к многопользовательскому режиму. Корневой каталог также содержит точки монтирования для других файловых систем, которые монтируются во время перехода в многопользовательский режим.
-Точкой монтирования называется каталог, находящийся в родительской (обычно - корневой) файловой системе, к которому может быть подсоединена другая файловая система.
-Более глубоко это описывается в разделе crossref:basics[disk-organization,Организация дисков].
-К стандартным точкам монтирования относятся `/usr/`, `/var/`, `/tmp/`, `/mnt/` и `/cdrom/`.
-Эти каталоги обычно перечислены как отдельные записи в файле `/etc/fstab`.
-Этот файл является таблицей с различными файловыми системами и точками монтирования, которая считывается системой.
-Большинство файловых систем в `/etc/fstab` монтируются во время загрузки автоматически из скрипта man:rc[8], если только в соответствующей записи для них не указано `noauto`.
-Более подробную информацию можно найти в разделе crossref:basics[disks-fstab,Файл fstab].
+Точка монтирования — это каталог, в который можно подключить дополнительные файловые системы к родительской файловой системе (обычно корневой файловой системе). Это подробно описано в разделе crossref:basics[disk-organization,Организация дисков]. Стандартные точки монтирования включают `/usr/`, `/var/`, `/tmp/`, `/mnt/` и `/cdrom/`. Эти каталоги обычно связаны с записями в файле `/etc/fstab`. Этот файл представляет собой таблицу различных файловых систем и точек монтирования, которая читается системой. Большинство файловых систем в `/etc/fstab` автоматически монтируются при загрузке с помощью скрипта man:rc[8], если их запись не содержит параметра `noauto`. Подробности можно найти в разделе crossref:basics[disks-fstab,Файл fstab].
-Полное описание иерархии файловой системы есть в man:hier[7].
-Таблица ниже содержит краткое описание наиболее часто упоминаемых каталогов.
+Полное описание иерархии файловой системы доступно в man:hier[7]. В следующей таблице представлен краткий обзор наиболее распространённых каталогов.
[cols="25h,~"]
|===
@@ -1106,203 +940,167 @@ drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmp
|Корневой каталог файловой системы.
|`/bin/`
-|Основные утилиты, необходимые для работы как в однопользовательском, так и в многопользовательском режимах.
+|Пользовательские утилиты, основные как для однопользовательской, так и для многопользовательской среды.
|`/boot/`
-|Программы и конфигурационные файлы, необходимые для нормальной загрузки операционной системы.
+|Программы и конфигурационные файлы, используемые при загрузке операционной системы.
|`/boot/defaults/`
-|Конфигурационные файлы, используемые в процессе загрузки операционной системы, со стандарными настройками. Обратитесь к man:loader.conf[5] для получения более подробной информации.
+|Файлы конфигурации загрузки по умолчанию. Подробности смотрите в man:loader.conf[5].
|`/dev/`
-|Специальные файлы устройств, управляемые при помощи man:devfs[5]
+|Специальные файлы устройств, управляемые man:devfs[5]
|`/etc/`
-|Основные конфигурационные файлы системы и скрипты.
+|Системные конфигурационные файлы и скрипты.
|`/etc/defaults/`
-|Конфигурационные файлы системы со стандартными настройками. Обратитесь к man:rc[8] для получения более подробной информации.
+|Файлы конфигурации системы по умолчанию. Подробности смотрите в man:rc[8].
|`/etc/periodic/`
-|Файлы сценариев, выполняемые ежедневно, еженедельно и ежемесячно при помощи man:cron[8]. Обратитесь к man:periodic[8] для получения более подробной информации.
+|Скрипты, выполняемые ежедневно, еженедельно и ежемесячно, через man:cron[8]. Подробности смотрите в man:periodic[8].
|`/lib/`
-|Критически важные системные библиотеки, необходимые для выполнимых файлов в `/bin` и `/sbin`
+|Критические системные библиотеки, необходимые для бинарных файлов в `/bin` и `/sbin`
|`/libexec/`
-|Критически важные системные файлы
+|Критические системные файлы
|`/media/`
-|Содержит подкаталоги для использования в качестве точек монтирования для сменных носителей, таких как CD, накопители USB и гибкие диски
+|Содержит подкаталоги, предназначенные для использования в качестве точек монтирования съемных носителей, таких как компакт-диски, USB-накопители и дискеты
|`/mnt/`
-|Пустой каталог, часто используемый системными администраторами как временная точка монтирования.
+|Пустая директория, обычно используемая системными администраторами в качестве временной точки монтирования.
|`/net/`
-|Автоматически монтируемые совместно используемые ресурсы NFS; обратитесь к man:auto_master[5]
+|Автомонтируемые NFS-ресурсы; см. man:auto_master[5]
|`/proc/`
-|Файловая система процессов. Обратитесь к man:procfs[5] и man:mount_procfs[8] для получения более подробной информации.
+|Файловая система процессов. Подробности смотрите в man:procfs[5].
|`/rescue/`
-|Статически скомпилированные программы для восстановления после сбоев, как описано в man:rescue[8].
+|Статически связанные программы для аварийного восстановления, как описано в man:rescue[8].
|`/root/`
-|Домашний каталог пользователя `root`.
+|Домашний каталог для учетной записи `root`.
|`/sbin/`
-|Системные утилиты и утилиты администрирования, необходимые для работы как в однопользовательском, так и в многопользовательском режимах.
+|Системные программы и административные утилиты, необходимые как для однопользовательского, так и для многопользовательского окружения.
|`/tmp/`
-|Временные файлы, которые обычно _не_ сохраняются при перезапуске системы. Размещаемая в оперативной памяти файловая система часто монтируется в `/tmp`. Это может быть автоматизировано с помощью переменных, относящихся к tmpmfs, в man:rc.conf[5] или с помощью записи в `/etc/fstab`; обратитесь к man:mdmfs[8] для получения более подробной информации.
+|Временные файлы, которые обычно _не_ сохраняются после перезагрузки системы. Часто в `/tmp` монтируется файловая система в памяти. Это можно автоматизировать, используя переменные, связанные с tmpmfs, из man:rc.conf[5], или добавив запись в `/etc/fstab`; подробности смотрите в man:mdmfs[8].
|`/usr/`
-|Основной набор пользовательских утилит и приложений.
+|Большинство пользовательских утилит и приложений.
|`/usr/bin/`
-|Пользовательские утилиты и приложения общего назначения.
+|Общие утилиты, инструменты программирования и приложения.
|`/usr/include/`
-|Стандартные заголовочные файлы для языка C.
+|Стандартные включаемые файлы языка C.
|`/usr/lib/`
-|Архивные библиотеки.
+|Библиотеки архивов.
|`/usr/libdata/`
-|Файлы данных для различных утилит.
+|Различные вспомогательные файлы данных.
|`/usr/libexec/`
-|Системные даемоны и системные утилиты, вызываемые другими программами.
+|Системные демоны и системные утилиты, выполняемые другими программами.
|`/usr/local/`
-|Локальные исполнимые файлы и библиотеки. Также используется в качестве стандартного целевого каталога в рамках инструментария портов FreeBSD. Внутри `/usr/local` общая структура каталогов должна следовать принципам, отражённым в man:hier[7] для `/usr`. Исключениями являются каталоги man, который расположен непосредственно в `/usr/local`, а не в `/usr/local/share`, и документация портов, которая располагается в `share/doc/port`.
+|Локальные исполняемые файлы и библиотеки. Также используется как путь по умолчанию для установки портов FreeBSD. Внутри `/usr/local` должна использоваться общая структура каталогов, описанная в man:hier[7] для `/usr`. Исключениями являются каталог man, который находится непосредственно в `/usr/local`, а не в `/usr/local/share`, а документация портов располагается в `share/doc/port`.
|`/usr/ports/`
|Коллекция портов FreeBSD (опционально).
|`/usr/sbin/`
-|Системные даемоны и системные утилиты, запускаемые пользователями.
+|Системные демоны и системные утилиты, выполняемые пользователями.
|`/usr/share/`
-|Файлы, не зависящие от архитектуры.
+|Архитектурно-независимые файлы.
|`/usr/src/`
-|Исходные тексты BSD и/или локальных программ.
+|BSD и/или локальные исходные файлы.
|`/var/`
-|Файлы журналов общего назначения, временные, перемещаемые файлы и файлы очередей печати.
+|Многоцелевые файлы журналов, временные, транзиентные и файлы очередей.
|`/var/log/`
-|Файлы различных системных журналов.
+|Различные системные журналы.
|`/var/tmp/`
-|Временные файлы, которые обычно сохраняются после перезапуска системы.
+|Временные файлы, которые обычно сохраняются после перезагрузки системы.
+
|===
[[disk-organization]]
-== Организация дисков
+== Организация диска
-Наименьшей единицей, которую FreeBSD использует для поиска файлов, является имя файла.
-Имена файлов чувствительны к регистру, поэтому `readme.txt` и `README.TXT` являются двумя отдельными файлами.
-FreeBSD не использует расширение файла для определения того, является ли файл программой, документом или какой-то иной формой данных.
+Наименьшей единицей организации, которую FreeBSD использует для поиска файлов, является имя файла. Имена файлов чувствительны к регистру, что означает, что `readme.txt` и `README.TXT` — это два разных файла. FreeBSD не использует расширение файла для определения, является ли файл программой, документом или каким-либо другим видом данных.
-Файлы хранятся в каталогах.
-Каталоги могут не содержать файлов, либо могут содержать многие сотни файлов.
-Каталог также может содержать другие каталоги, что позволяет иметь иерархию вложенных друг в друга каталогов для организации данных.
+Файлы хранятся в каталогах. Каталог может не содержать файлов или содержать сотни файлов. Каталог также может содержать другие каталоги, что позволяет создавать иерархию вложенных каталогов для организации данных.
-Обращение к файлам и каталогам осуществляется указанием имени файла или каталога, дополняемого прямым слэшем `/`, за которым при необходимости могут следовать имена других каталогов.
-К примеру, если каталог `foo` содержит каталог `bar`, который содержит файл `readme.txt`, то полным именем, или _путём_ файла является `foo/bar/readme.txt`.
-Заметьте, что это отличается от Windows(R), в которой для отделения имён файлов и каталогов используется `\`.
-FreeBSD не использует символьных или каких-либо других именований устройств в пути.
-К примеру, набирать `c:\foo\bar\readme.txt` во FreeBSD не имеет смысла.
+Файлы и каталоги указываются путём перечисления имени файла или каталога, за которым следует косая черта `/`, а затем — при необходимости — другие имена каталогов. Например, если каталог `foo` содержит каталог `bar`, в котором находится файл `readme.txt`, то полное имя или _путь_ к файлу будет `foo/bar/readme.txt`. Обратите внимание, что это отличается от Windows(R), где для разделения имён файлов и каталогов используется `\`. В FreeBSD не используются буквы дисков или другие обозначения накопителей в пути. Например, в FreeBSD не указывают путь вида `c:\foo\bar\readme.txt`.
[[disks-file-systems]]
=== Файловые системы
-Каталоги и файлы хранятся в файловой системе.
-Каждая файловая система на самом верхнем уровне содержит ровно один каталог, называемый _корневым каталогом_ этой файловой системы.
-Этот корневой каталог может содержать другие каталоги.
-Одна из файловых систем назначается _корневой файловой системой_, или `/`.
-Любая другая файловая система _монтируется_ в корневой файловой системе.
-Вне зависимости от того, сколько дисков присутствует в системе FreeBSD, каждый каталог выглядит как часть одного диска.
+Каталоги и файлы хранятся в файловой системе. Каждая файловая система содержит ровно один каталог на самом верхнем уровне, называемый _корневым каталогом_ для этой файловой системы. Этот корневой каталог может содержать другие каталоги. Одна файловая система назначается _корневой файловой системой_ или `/`. Все остальные файловые системы _монтируются_ в корневую файловую систему. Независимо от количества дисков в системе FreeBSD, каждый каталог выглядит как часть одного и того же диска.
-Рассмотрим три файловых системы, называющиеся `A`, `B`, и `C`.
-Каждая файловая система имеет один корневой каталог, в котором содержатся два других каталоги с именами `A1`, `A2` (и, соответственно, `B1`, `B2` и `C1`, `C2`).
+Рассмотрим три файловые системы: `A`, `B` и `C`. Каждая файловая система имеет один корневой каталог, который содержит два других каталога с именами `A1`, `A2` (аналогично `B1`, `B2` и `C1`, `C2`).
-Назовём `A` корневой файловой системой.
-Если для просмотра содержимого этого каталога использовать команду man:ls[1], то она покажет два подкаталога, `A1` и `A2`.
-Дерево каталогов выглядит вот так:
+Назовем корневую файловую систему `A`. Если использовать man:ls[1] для просмотра содержимого этого каталога, будут видны два подкаталога, `A1` и `A2`. Дерево каталогов выглядит следующим образом:
-image::example-dir1.png[Дерево каталогов с корневым каталогом и двумя подкаталогами, A1 и A2]
+image::example-dir1.png["Дерево каталогов с корневым каталогом и двумя подкаталогами", A1 and A2]
-Файловая система должна быть смонтирована в каталог другой файловой системы.
-При монтировании файловой системы `B` в каталог `A1`, корневой каталог `B` заменяет `A1`, а каталоги в `B` отображаются в соответствии с этим:
+Файловая система должна быть смонтирована в каталог другой файловой системы. При монтировании файловой системы `B` в каталог `A1` корневой каталог `B` заменяет `A1`, а каталоги в `B` отображаются соответствующим образом:
-image::example-dir2.png[Дерево каталогов с корневым каталогом и двумя подкаталогами, A1 и A2. А также дополнительные подкаталоги, B1 и B2, подвешенные к A1]
+image::example-dir2.png["Дерево каталогов с корневым каталогом и двумя подкаталогами", A1 and A2. And more subdirectories, B1 and B2 hanging from A1]
-При необходимости к любым файлам, находящимся в каталогах `B1` или `B2`, можно обратиться по маршруту `/A1/B1` или `/A1/B2`.
-Все файлы, находившиеся в `/A1`, временно скрыты.
-Они появятся снова, если `B` будет _размонтирована_ с `A`.
+Любые файлы в каталогах `B1` или `B2` доступны по пути `/A1/B1` или `/A1/B2` соответственно. Файлы, которые находились в `/A1`, временно скрыты. Они снова станут доступны, если `B` будет _отмонтирован_ из `A`.
-Если `B` была смонтирована в `A2`, диаграмма будет выглядеть так:
+Если бы `B` был смонтирован на `A2`, то диаграмма выглядела бы так:
-image::example-dir3.png[Дерево каталогов с корневым каталогом и двумя подкаталогами, A1 и A2. А также дополнительные подкаталоги, B1 и B2, подвешенные к A2]
+image::example-dir3.png["Дерево каталогов с корневым каталогом и двумя подкаталогами", A1 and A2. And more subdirectories, B1 and B2 hanging from A2]
-а пути будут `/A2/B1` и `/A2/B2`, соответственно.
+и пути будут `/A2/B1` и `/A2/B2` соответственно.
-Файловые системы могут быть смонтированы одна на другую. Продолжая предыдущий пример, файловая система `C` может быть смонтирована на каталог `B1` файловой системы `B` в таком порядке:
+Файловые системы могут монтироваться одна поверх другой. Продолжая последний пример, файловая система `C` может быть смонтирована поверх каталога `B1` в файловой системе `B`, что приведёт к следующей структуре:
-image::example-dir4.png[Сложное дерево каталогов. Различные каталоги подвешены к корню.]
+image::example-dir4.png["Сложная древовидная структура каталогов. С различными подкаталогами, отходящими от корневого."]
-Или `C` может быть смонтирована прямо на файловую систему `A`, на каталог `A1`:
+Или `C` может быть непосредственно смонтирована в файловую систему `A`, в каталог `A1`:
-image::example-dir5.png[Сложное дерево каталогов. Различные каталоги подвешены к корню.]
+image::example-dir5.png["Сложная древовидная структура каталогов. С различными подкаталогами, отходящими от корневого."]
-Вполне возможно иметь одну большую корневую файловую систему и не иметь потребности в создании других.
-У такого подхода есть несколько недостатков и одно преимущество.
+Вполне возможно иметь одну большую корневую файловую систему и не создавать других. У такого подхода есть несколько недостатков и одно преимущество.
.Преимущества нескольких файловых систем
-* Различные файловые системы могут иметь различные _параметры монтирования_. Например, корневая файловая система может быть смонтирована в режиме доступности только для чтения, что делает невозможным случайное удаление или редактирование какого-то критически важного файла. Отделение файловых систем, доступных пользователям для записи, таких как `/home`, от других файловых систем позволяет монтировать их с параметром _nosuid_. Этот параметр отменяет действие битов _suid_/ _guid_ на исполняемых файлах в этой файловой системе, что потенциально повышает безопасность.
-* FreeBSD автоматически оптимизирует расположение файлов на файловой системе в зависимости от того, как файловая система используется. Файловая система, содержащая множество мелких часто записываемых файлов, будет иметь оптимизацию, отличную от таковой для файловой системы, содержащей несколько больших файлов. На одной большой файловой системе эта оптимизация не работает.
-* Файловые системы FreeBSD устойчивы к отключению электропитания. Тем не менее, потеря питания в критический момент все же может повредить структуру файловой системы. Разделение данных на несколько файловых систем повышает шансы, что система все-таки будет работать и делает более легким восстановление с резервной копии.
+* Различные файловые системы могут иметь разные _параметры монтирования_. Например, корневая файловая система может быть смонтирована в режиме только для чтения, что предотвращает случайное удаление или редактирование важных файлов пользователями. Разделение файловых систем, доступных для записи пользователями, таких как `/home`, от остальных позволяет монтировать их с опцией _nosuid_. Эта опция предотвращает действие битов _suid_/_guid_ у исполняемых файлов, хранящихся в данной файловой системе, что может повысить безопасность.
+* FreeBSD автоматически оптимизирует расположение файлов в файловой системе в зависимости от того, как она используется. Таким образом, файловая система, содержащая множество часто записываемых небольших файлов, будет оптимизирована иначе, чем система с меньшим количеством более крупных файлов. При использовании одной большой файловой системы такая оптимизация нарушается.
+* Файловые системы FreeBSD устойчивы к потере питания. Однако отключение питания в критический момент всё же может повредить структуру файловой системы. Разделение данных между несколькими файловыми системами увеличивает вероятность успешной загрузки системы, упрощая восстановление из резервной копии при необходимости.
-.Преимущество одной файловой системы
-* Размер файловых систем фиксирован. Если вы создаете файловую систему при установке FreeBSD и задаете определенный размер, позднее вы можете обнаружить что нужен раздел большего размера. Это не так легко сделать без резервного копирования, создания файловых систем нового размера и последующего восстановления сохраненных данных.
+.Преимущество единой файловой системы
+* Файловые системы имеют фиксированный размер. Если вы создали файловую систему при установке FreeBSD и задали ей определённый размер, позже может оказаться, что раздел нужно увеличить. Это нелегко сделать без резервного копирования, пересоздания файловой системы с новым размером и последующего восстановления данных из резервной копии.
+
[IMPORTANT]
====
-Во FreeBSD имеется команда man:growfs[8], которая позволяет увеличивать размер файловой системы на лету, устраняя это ограничение.
-Файловая системы может быть расширена только на свободное пространство раздела, в котором она находится.
-Если имеется пространство за границей раздела, то раздел может быть увеличен при помощи man:gpart[8].
-Если раздел является последним на виртуальном диске, и диск был увеличен, то и раздел может быть увеличен.
+FreeBSD предоставляет команду man:growfs[8], которая позволяет увеличивать размер файловой системы на лету, устраняя это ограничение. Файловая система может быть расширена только в свободное пространство раздела, в котором она находится. Если после раздела есть место, сам раздел можно расширить с помощью man:gpart[8]. Если раздел является последним на виртуальном диске и диск расширен, то раздел также можно расширить.
====
[[disks-partitions]]
-=== Дисковые разделы
+=== Разделы диска
-Файловые системы размещаются в _разделах_.
-Диски разбиваются на разделы в соответствии с одной из схем разбиения на разделы; обратитесь к разделу crossref:basics[bsdinstall-part-manual, Разметка в неавтоматизированном режиме].
-Более новой схемой является GPT; более старые компьютеры, применяющие BIOS, используют MBR.
-GPT поддерживает разбиение диска на разделы, имеющие определённый размер, смещение и тип.
-Она поддерживает большое количество разделов и типов разделов, и рекомендуется к использованию во всех случаях, где это возможно.
-Разделы GPT используют имя диска с суффиксом, при этом суффикс `p1` обозначает первый раздел, `p2` второй раздел и так далее.
-Однако MBR поддерживает лишь небольшое количество разделов.
-Разделы MBR во FreeBSD называют `слайсами`.
-Слайсы могут быть использованы для разных операционных систем.
-Слайсы FreeBSD, в свою очередь, разбиваются на разделы при помощи меток BSD (обратитесь к man:bsdlabel[8]).
+Файловые системы содержатся в _разделах_. Диски разделяются на разделы с использованием одной из нескольких схем разметки; см. crossref:bsdinstall[bsdinstall-part-manual, Ручная разметка разделов]. Более новая схема — GPT; старые компьютеры на базе BIOS используют MBR. GPT поддерживает разделение диска на разделы с указанием размера, смещения и типа. Она поддерживает большое количество разделов и их типов, и рекомендуется к использованию везде, где это возможно. Разделы GPT используют имя диска с суффиксом, где суффикс `p1` соответствует первому разделу, `p2` — второму и так далее. MBR, однако, поддерживает только небольшое количество разделов. Разделы MBR в FreeBSD называются _слайсами_. Слайсы могут использоваться для разных операционных систем. Слайсы FreeBSD дополнительно разбиваются на разделы с использованием меток BSD (см. man:bsdlabel[8]).
-Номера слайсов начинаются с 1, следуют за именем устройства и предваряются `s`.
-Таким образом, "da0__s1__" является первым слайсом первого накопителя SCSI.
-На диске может быть только четыре физических слайса, но внутри физических слайсов подходящего типа могут размещаться логические слайсы.
-Эти расширенные слайсы нумеруются начиная с 5, так что "ada0__s5__" является первым расширенным слайсом на первом диске SATA.
-Эти устройства используются файловыми системами, занимающими весь слайс.
+Номера слайсов указываются после имени устройства с префиксом `s` и начинаются с 1. Таким образом, "da0__s1__" — это первый слайс на первом SCSI-диске. На диске может быть только четыре физических слайса, но внутри физических слайсов соответствующего типа могут находиться логические слайсы. Эти расширенные слайсы нумеруются, начиная с 5, поэтому "ada0__s5__" — это первый расширенный слайс на первом SATA-диске. Эти устройства используются файловыми системами, которые предназначены для размещения в слайсе.
-Каждый раздел GPT или BSD может содержать только одну файловую систему, и это значит, что файловые системы описываются либо при помощи их типичных точек монтирования в иерархии файловой системы, либо по имени раздела, в котором они размещены.
+Каждый раздел GPT или BSD может содержать только одну файловую систему, что означает, что файловые системы часто описываются либо по их стандартной точке монтирования в иерархии файловых систем, либо по имени раздела, в котором они находятся.
-FreeBSD также использует дисковое пространство для _раздела подкачки_, обеспечивающего работу _виртуальной памяти_. Это позволяет вашему компьютеру работать так, как если бы у него было больше памяти, чем есть на самом деле. Когда у FreeBSD кончается память, она перемещает часть данных, не используемых в данный момент, в раздел подкачки и возвращает их обратно (перемещая в подкачку что-то другое), когда они нужны.
-Это явление называется _подкачкой_.
+FreeBSD также использует место на диске для _раздела подкачки_ (_swap space_), чтобы обеспечить работу _виртуальной памяти_. Это позволяет компьютеру вести себя так, как будто у него больше памяти, чем есть на самом деле. Когда FreeBSD исчерпывает доступную память, она перемещает часть данных, которые в данный момент не используются, в раздел подкачки, а затем возвращает их обратно (перемещая что-то другое), когда они нужны. Этот процесс называется _подкачкой_ (_paging_).
-Для некоторых разделов BSD существуют определённые связанные с ними соглашения.
+Некоторые разделы BSD имеют определенные соглашения, связанные с ними.
[cols="25h,~"]
|===
@@ -1310,74 +1108,64 @@ FreeBSD также использует дисковое пространств
| Соглашение
|`a`
-|Как правило, содержит корневую файловую систему.
+|Обычно содержит корневую файловую систему.
|`b`
-|Как правило, содержит пространство подкачки.
+|Обычно содержит раздел подкачки.
|`c`
-|В обычном случае имеет такой же размер, что и окружающий слайс. Это позволяет утилитам, которым нужно обрабатывать весь слайс, таким, как сканер плохих блоков, использовать раздел `c`. В обычном случае создавать файловую систему в этом разделе не требуется.
+|Обычно имеет тот же размер, что и окружающий слайс. Это позволяет утилитам, которым необходимо работать со всем слайсом, например, сканеру плохих блоков, работать с разделом `c`. Файловая система обычно не создается на этом разделе.
|`d`
-|Раздел `d` создавался для специальных целей, хотя сейчас они не актуальны и `d` может быть задействован как обычный раздел.
+|Раздел `d` ранее имел особое значение, но сейчас это ушло в прошлое, и `d` может использоваться как обычный раздел.
|===
-Слайсы и "опасно размеченные" физические устройства содержат разделы BSD, обозначаемые буквами от `a` до `h`.
-Эта буква добавляется к имени устройства, и, таким образом, "da0__a__" является разделом `a` на первом устройстве `da`, являющемся "эксклюзивно выделенным".
-"ada1s3__e__" является пятым разделом третьего слайса второго диска SATA.
+Слайсы и «опасно выделенные» (dangerously dedicated) физические диски содержат разделы BSD, которые обозначаются буквами от `a` до `h`. Эта буква добавляется к имени устройства, поэтому «da0__a__» — это раздел `a` на первом диске `da`, который является «опасно выделенным». «ada1s3__e__» — это пятый раздел в третьем срезе второго диска SATA.
-Наконец, каждый диск идентифицирован. Имя диска начинается с кода, обозначающего тип диска, затем идет номер диска.
-В отличие от разделов и слайсов, нумерация дисков начинается с 0.
-Часто встречающиеся коды перечислены в разделе crossref:basics[disks-naming,Имена дисковых устройств].
+Наконец, каждый диск в системе идентифицируется. Имя диска начинается с кода, указывающего тип диска, за которым следует номер, обозначающий конкретный диск. В отличие от разделов и слайсов, нумерация дисков начинается с 0. Распространённые коды перечислены в crossref:basics[disks-naming,Имена устройств дисков].
-Для ссылки на раздел внутри слайса указывайте имя диска, `s`, номер слайса, а затем букву раздела.
-Примеры показаны в crossref:basics[basics-disk-slice-part,Примеры именований диска, слайса и раздела].
-В обозначение разделов GPT включается имя диска, `p`, а затем номер раздела.
+При указании раздела в слайсе укажите имя диска, `s`, номер слайса, а затем букву раздела. Примеры приведены в разделе crossref:basics[basics-disk-slice-part,Примеры имен дисков, слайсов и разделов]. Разделы GPT включают имя диска, `p`, а затем номер раздела.
-crossref:basics[basics-concept-disk-model,Концептуальная модель диска] отражает концептуальную модель рабиения диска с использованием слайсов MBR.
-<<basics-concept-disk-model>> показывает концептуальную модель диска, которая должна помочь прояснить ситуацию.
+crossref:basics[basics-concept-disk-model,Концептуальная модель диска] показывает концептуальную модель разметки диска с использованием разделов MBR.
-При установке FreeBSD с использованием MBR настройте дисковые слайсы и создайте разделы внутри слайса для использования во FreeBSD.
-При использовании GPT, настройте разделы для каждой файловой системы.
-В любом случае создайте файловую систему или раздел подкачки в каждом разделе, а также решите, где будет монтироваться каждая из файловых систем.
-Обратитесь к man:gpart[8] для получения информации о работе с разделами.
+При установке FreeBSD настройте слайсы диска, если используется MBR, и создайте разделы внутри слайса, который будет использоваться для FreeBSD. Если используется GPT, настройте разделы для каждой файловой системы. В обоих случаях создайте файловую систему или область подкачки в каждом разделе и определите, где будет монтироваться каждая файловая система. Подробности о работе с разделами см. в man:gpart[8].
[[disks-naming]]
-.Имена дисковых устройств
+.Имена устройств дисков
[cols="1,1", frame="none", options="header"]
|===
-| Тип дискового устройства
-| Имя дискового устройства
+| Тип накопителя
+| Имя устройства накопителя
-|Приводы жёстких дисков SATA и IDE
+|SATA и IDE жёсткие диски
|`ada`
-|Приводы жёстких дисков SCSI и устройства хранения USB
+|SCSI жесткие диски и USB устройства хранения данных
|`da`
-|Устройства хранения с интерфейсом NVMe
+|Хранилище NVMe
|`nvd` или `nda`
-|Приводы CD-ROM с интерфейсом SATA и IDE
+|SATA и IDE приводы CD-ROM
|`cd`
-|Приводы CD-ROM с интерфейсом SCSI
+|SCSI CD-ROM приводы
|`cd`
-|Приводы гибких дисков
+|Накопители на гибких дисках
|`fd`
-|Ленточные накопители с интерфейсом SCSI
+|SCSI-ленточные накопители
|`sa`
-|Устройства хранения RAID
-|Например, `aacd` для Adaptec AdvancedRAID, `mlxd` и `mlyd` для Mylex, `amrd` для AMI MegaRAID, `idad` для Compaq Smart RAID и `twed` для 3ware RAID.
+|RAID-диски
+|Примеры включают `aacd` для Adaptec(R) AdvancedRAID, `mlxd` и `mlyd` для Mylex(R), `amrd` для AMI MegaRAID(R), `idad` для Compaq Smart RAID, `twed` для 3ware(R) RAID.
|===
-[[basics-disk-slice-part]]
-.Примеры именований диска, слайса и раздела
[example]
====
+[[basics-disk-slice-part]]
+.Примеры названий дисков, слайсов и разделов
[.informaltable]
[cols="1,1", frame="none", options="header"]
|===
@@ -1385,10 +1173,10 @@ crossref:basics[basics-concept-disk-model,Концептуальная моде
| Значение
|`ada0s1a`
-|Первый раздел (`a`) на первом слайсе (`s1`) первого диска SATA (`ada0`).
+|Первый раздел (`a`) на первом слайсе (`s1`) на первом SATA-диске (`ada0`).
|`da1s2e`
-|Пятый раздел (`e`) на втором слайсе (`s2`) второго SCSI диска (`da1`).
+|Пятый раздел (`e`) на втором срезе (`s2`) второго SCSI-диска (`da1`).
|===
====
@@ -1396,164 +1184,131 @@ crossref:basics[basics-concept-disk-model,Концептуальная моде
.Концептуальная модель диска
[example]
====
-Эта диаграмма изображает первый подключенный к системе диск SATA с точки зрения FreeBSD.
-Предположим, что объём диска составляет 250 ГБ, и он содержит слайс размером 80 ГБ и слайс размером 170 ГБ (разделы MS-DOS(R)).
-Первый слайс содержит файловую систему Windows(R) NTFS, `C:`, а второй слайс содержит установленную FreeBSD.
-В этом примере установленная FreeBSD имеет четыре раздела с данными и раздел подкачки.
+На этой диаграмме показано, как FreeBSD видит первый SATA-диск, подключённый к системе. Предположим, что размер диска составляет 250 ГБ, и он содержит раздел на 80 ГБ и раздел на 170 ГБ (разделы MS-DOS(R)). Первый раздел содержит файловую систему Windows(R) NTFS, `C:`, а второй раздел содержит установленную систему FreeBSD. В данном примере установки FreeBSD присутствуют четыре раздела с данными и один раздел подкачки.
-Каждый из четырёх разделов содержит файловую систему.
-Раздел `a` будет используется для корневой файловой системы, `d` для `/var/`, `e` для `/tmp/` и `f` для `/usr/`.
-Раздел, обозначенный буквой `c`, соответствует всему слайсу и поэтому не используется как обычный раздел.
+Четыре раздела содержат файловые системы. Раздел `a` используется для корневой файловой системы, `d` — для `/var/`, `e` — для `/tmp/`, а `f` — для `/usr/`. Буква раздела `c` относится ко всему слайсу и поэтому не используется для обычных разделов.
-image::disk-layout.png[Разметка диска, разделённого между Windows и FreeBSD]
+image::disk-layout.png["Компоновка общего диска между Windows и FreeBSD"]
====
[[mount-unmount]]
-== Монтирование и размонтирование файловых систем
+== Монтирование и демонтирование файловых систем
-Файловая система лучше всего представима в виде дерева, которое, если можно так выразиться, растёт из `/`.
-Каталоги `/dev`, `/usr` и прочие, находящиеся в корневом каталоге, являются ветвями и, в свою очередь, могут иметь собственные ветви, такие как `/usr/local`, и так далее.
+Файловую систему удобно визуализировать как дерево, корнем которого является `/`. Каталоги `/dev`, `/usr` и другие в корневом каталоге представляют собой ветви, которые, в свою очередь, могут иметь собственные ветви, например `/usr/local`, и так далее.
-Имеются разные основания для того, чтобы размещать некоторые из этих каталогов в отдельных файловых системах.
-`/var` содержит каталоги `log/`, `spool/` и разные виды временных файлов и, таким образом, может полностью заполнить свободное дисковое пространство.
-Заполнение корневой файловой системы нежелательно, поэтому часто предпочитают отделить `/var` от `/`.
+Существуют различные причины для размещения некоторых из этих каталогов на отдельных файловых системах. `/var` содержит каталоги `log/`, `spool/` и различные типы временных файлов, поэтому может заполняться. Заполнение корневой файловой системы нежелательно, поэтому часто предпочтительно отделить `/var` от `/`.
-Другой частой причиной для размещения определённых веток каталогов в отдельных файловых системах является их расположение на отдельных физических дисках, отдельных виртуальных дисках, например, в Network File System, описанной в отдельном crossref:network-servers[network-nfs,разделе], или на CDROM.
+Еще одна распространённая причина размещать определённые каталоги на других файловых системах — это необходимость их размещения на отдельных физических дисках или виртуальных дисках, таких как сетевые файловые системы (NFS), описанные в crossref:network-servers[network-nfs,“Сетевая файловая система (NFS)”], или приводы CDROM.
[[disks-fstab]]
=== Файл fstab
-В процессе загрузки (crossref:boot[boot,Процесс загрузки FreeBSD]) файловые системы, перечисленные в `/etc/fstab`, монтируются автоматически, за исключением тех, для которых указан параметр `noauto`.
-Этот файл содержит записи в следующем формате:
+В процессе загрузки (crossref:boot[boot,Процесс загрузки FreeBSD]), файловые системы, перечисленные в `/etc/fstab`, автоматически монтируются, за исключением записей, содержащих `noauto`. Этот файл содержит записи в следующем формате:
[.programlisting]
....
-устройство /точка-монтирования тип файловой системы опции частота дампов passno
+device /mount-point fstype options dumpfreq passno
....
-`устройство`::
-Имя существующего устройства, соответствующее описанному в разделе crossref:basics[disks-naming,Имена дисковых устройств].
+`device`::
+Существующее имя устройства, как описано в crossref:basics[disks-naming,Имена устройств дисков].
-`точка монтирования`::
-Существующий каталог, предназначенный для монтирования файловой системы.
+`mount-point`::
+Существующий каталог, на который монтируется файловая система.
-`тип файловой системы`::
-Тип файловой системы, который передается программе man:mount[8]. По умолчанию FreeBSD использует `ufs`.
+`fstype`::
+Тип файловой системы, передаваемый в man:mount[8]. Файловая система по умолчанию в FreeBSD — `ufs`.
-`опции`::
-Либо `rw` для монтирования файловой системы в режиме чтения и записи, либо `ro` для файловых систем, доступных только в режиме чтения, за которыми могут следовать и другие нужные параметры. Довольно часто используется опция `noauto`, чтобы не монтировать автоматически файловые системы в процессе загрузки. Остальные параметры перечислены в man:mount[8].
+`options`::
+`rw` для файловых систем с доступом на чтение и запись или `ro` для файловых систем только для чтения, за которыми могут следовать другие необходимые опции. Часто используется опция `noauto` для файловых систем, которые обычно не монтируются при загрузке. Другие опции перечислены в man:mount[8].
-`частота дампов`::
-Используется утилитой man:dump[8] для указания файловых систем, с которых требуется снимать копии. При отсутствии этого параметра он принимает нулевое значение.
+`dumpfreq`::
+Используется man:dump[8] для определения, какие файловые системы требуют дампинга. Если поле отсутствует, предполагается значение ноль.
`passno`::
-Определяет порядок, в котором файловые системы формата UFS должны проверяться при помощи man:fsck[8] после перезагрузки.
-Для файловых систем, которые должны быть пропущены при проверке, параметр `passno` должен быть установлен в нулевое значение. Корневая файловая система должна проверяться в первую очередь и иметь значение `passno`, установленное равным единице. Для других файловых систем значение этого параметра должно превышать единицу. Если две и более файловые системы имеют одинаковое значение `passno`, то man:fsck[8] будет пытаться проверять файловые системы параллельно, если это возможно.
+Определяет порядок проверки файловых систем UFS с помощью man:fsck[8] после перезагрузки. Файловые системы, которые следует пропускать, должны иметь значение `passno`, равное нулю. Корневая файловая система должна проверяться первой и иметь значение `passno`, равное единице. Остальные файловые системы должны иметь значения больше единицы. Если несколько файловых систем имеют одинаковое значение `passno`, man:fsck[8] попытается проверять их параллельно, если это возможно.
-Обратитесь к man:fstab[5] для получения дополнительной информацией о формате файла `/etc/fstab` и его параметрах.
+См. man:fstab[5] для получения дополнительной информации о формате `/etc/fstab` и его параметрах.
[[disks-mount]]
=== Использование man:mount[8]
-Файловые системы монтируются при помощи man:mount[8].
-Самый простой формат имеет следующий вид:
+Файловые системы монтируются с помощью man:mount[8]. Базовая синтаксическая конструкция выглядит следующим образом:
[example]
====
-[source,shell]
+[source, shell]
....
-# mount __device__ __mountpoint__
+# mount device mountpoint
....
====
-Файловая система, включённая в `/etc/fstab`, также может быть смонтирована с указанием только лишь точки монтирования.
+Файловая система, указанная в `/etc/fstab`, также может быть смонтирована, если указать только точку монтирования.
-Эта команда имеет много параметров, описанных в man:mount[8].
-Самые часто используемые параметры таковы:
+Эта команда предоставляет множество опций, которые описаны в man:mount[8]. Наиболее часто используемые опции включают:
.Параметры монтирования
`-a`::
-Смонтировать все файловые системы, перечисленные в файле `/etc/fstab`, за исключением тех, что помечены как "noauto", исключены параметром `-t` или уже смонтированы.
+Смонтировать все файловые системы, перечисленные в `/etc/fstab`, за исключением тех, которые помечены как "noauto", исключены флагом `-t` или уже смонтированы.
`-d`::
-Сделать все, кроме самого системного вызова mount. Эта опция полезна вместе с флагом `-v` для определения того, что на самом деле пытается сделать man:mount[8].
+Выполнить все действия, кроме самого системного вызова mount. Эта опция полезна в сочетании с флагом `-v` для определения того, что на самом деле пытается сделать man:mount[8].
`-f`::
-Принудительное монтирование непроверенного раздела (опасно) или аннулирование полномочий на операции записи данных при понижении статуса монтирования файловой системы с доступной на чтение-запись на доступной только для операций чтения.
+Принудительно смонтировать поврежденную файловую систему (опасно) или отозвать права на запись при понижении статуса монтирования файловой системы с чтения-записи на только чтение.
`-r`::
-Монтировать файловую систему в режиме только для чтения. Идентично использованию параметра `-o ro`.
+Смонтировать файловую систему в режиме только для чтения. Это эквивалентно использованию `-o ro`.
-`-t` _fstype_::
-Смонтировать указанный тип файловой системы или, в случае указания `-a`, монтировать файловые системы только данного типа. По умолчанию применяется тип файловой системы "ufs".
+``-t _тип_фс_``::
+Смонтировать указанный тип файловой системы или смонтировать только файловые системы данного типа, если включен параметр `-a`. Тип файловой системы "ufs" используется по умолчанию.
`-u`::
-Обновить опции монтирования для файловой системы.
+Обновить параметры монтирования файловой системы.
`-v`::
Выдавать более подробную информацию.
`-w`::
-Монтировать файловую систему в режиме "чтение-запись".
+Смонтировать файловую систему в режиме чтения-записи.
-Следующие значения могут быть переданы в качестве аргументов `-o` в виде списка значений, разделённых запятыми:
+Следующие параметры могут быть переданы в `-o` в виде списка, разделенного запятыми:
-nosuid::
-Игнорировать setuid и setgid биты на файловой системе (еще одна полезная опция для повышения безопасности системы).
+`nosuid`::
+Не интерпретировать флаги setuid или setgid на файловой системе. Это также полезная опция безопасности.
[[disks-umount]]
=== Использование man:umount[8]
-Для размонтирования файловой системы используйте man:umount[8].
-Эта команда принимает один параметр, который может соответствовать точке монтирования, имени устройства либо принимать значение `-a` или `-A`.
+Для размонтирования файловой системы используйте man:umount[8]. Эта команда принимает один параметр, которым может быть точка монтирования, имя устройства, `-a` или `-A`.
-Во всех вариантах принимается параметр `-f` для принудительного размонтирования и `-v` для выдачи подробной информации.
-Имейте в виду, что применение `-f` в целом не рекомендутся, так как может привести к аварийному завершению работы компьютера или повредить данные в файловой системе.
+Все формы команды принимают параметр `-f` для принудительного размонтирования и `-v` для вывода подробной информации. Учтите, что использование `-f` обычно не рекомендуется, так как это может привести к аварийному завершению работы компьютера или повреждению данных в файловой системе.
-Для размонтирования всех смонтированных файловых систем или только тех типов файловых систем, что перечислены после параметра `-t`, воспользуйтесь параметрами `-a` и `-A`.
-Заметьте, что при использовании `-A` попытка размонтирования корневой файловой системы не предпринимается.
+Для размонтирования всех смонтированных файловых систем или только файловых систем указанных после `-t` типов используйте `-a` или `-A`. Обратите внимание, что `-A` не пытается размонтировать корневую файловую систему.
[[basics-processes]]
-== Процессы и даемоны
-
-FreeBSD является многозадачной операционной системой.
-Каждая программа, выполняющаяся в некоторый выбранный момент времени, называется _процессом_.
-Каждая запускаемая команда порождает хотя бы один новый процесс, и имеется определённое количество системных процессов, которые запускает FreeBSD.
-
-Каждый процесс идентифицируется уникальным номером, называемым _идентификатором процесса_ (_process ID_) или _PID_.
-Подобно файлам, у каждого процесса имеется один владелец и группа, при этом полномочия владельца и группы используются для определения того, какие файлы и устройства могут быть открыты процессом.
-У большинства процессов также есть родительский процесс, которых их запустил.
-Например, командная оболочка является процессом, и любая команда, запущенная из командной оболочки, является процессом, для которого командная оболочка является родительским процессом.
-Исключением из этого правила является специальный процесс, который называется man:init[8], который всегда является первым процессом, запускаемым во время загрузки, и который всегда имеет PID, равный `1`.
-
-Некоторые программы спроектированы не для того, чтобы работать в режиме ввода команд пользователя, и отключаются от терминала при первой возможности.
-К примеру, веб-сервер отвечает на веб-запросы, а не на команды пользователя.
-Другим примером такого типа приложений являются почтовые серверы.
-Программы такого типа известны под названием _даемоны_.
-Понятие даемона пришло из греческой мифологии и обозначает сущность, которая не является ни хорошей, ни плохой, и которая невидимо выполняет полезные дела.
-Это объясняет тот факт, что талисманом BSD является дружелюбно выглядящий даемон в кедах и с вилами.
-
-Имеется соглашение, по которому программы, обычно работающие в режиме даемона, именуются с "d" в конце названия.
-К примеру, BIND означает Berkeley Internet Name Domain, но на самом деле исполняемой программой является `named`.
-Программой веб-сервера Apache является `httpd`, а даемоном очереди принтера является `lpd`.
-Это всего лишь соглашение об именовании.
-К примеру, основной почтовый даемон для приложения Sendmail называется `sendmail`, а не `maild`.
+== Процессы и Демоны
+
+FreeBSD - это многозадачная операционная система. Каждая программа, выполняемая в любой момент времени, называется _процессом_. Каждая запущенная команда создает как минимум один новый процесс, и в системе FreeBSD выполняется ряд системных процессов.
+
+Каждый процесс однозначно идентифицируется числом, называемым _идентификатором процесса_ (PID). Подобно файлам, каждый процесс имеет владельца и группу, а права владельца и группы используются для определения того, какие файлы и устройства процесс может открыть. Большинство процессов также имеют родительский процесс, который их запустил. Например, оболочка — это процесс, и любая команда, запущенная в оболочке, является процессом, для которого оболочка выступает родительским процессом. Исключением является специальный процесс man:init[8], который всегда запускается первым при загрузке и всегда имеет PID `1`.
+
+Некоторые программы не предназначены для постоянного взаимодействия с пользователем и отключаются от терминала при первой возможности. Например, веб-сервер отвечает на веб-запросы, а не на действия пользователя. Почтовые серверы — ещё один пример таких приложений. Эти программы называются _демонами_. Термин «демон» происходит из греческой мифологии и обозначает сущность, которая не является ни доброй, ни злой и незаметно выполняет полезные задачи. Именно поэтому талисманом BSD стал улыбающийся демон в кроссовках и с вилами.
+
+Существует соглашение называть программы, которые обычно работают как демоны, с добавлением буквы "d" в конце. Например, BIND — это Berkeley Internet Name Domain, но фактическая программа, которая выполняется, называется `named`. Веб-сервер Apache называется `httpd`, а демон очереди печати — `lpd`. Это всего лишь соглашение об именовании. Например, основной почтовый демон для приложения Sendmail называется `sendmail`, а не `maild`.
=== Просмотр процессов
-Для просмотра процессов, работающих в системе, воспользуйтесь man:ps[1] или man:top[1].
-Для выдачи статичного списка выполняемых в данный момент процессов, их PID, объёма используемой ими памяти и команды, которой они были запущены, используйте man:ps[1].
-Для отображения всех выполняющихся процессов и обновления этого списка каждые несколько секунд в целях интерактивного наблюдения за тем, что делает компьютер, используйте man:top[1].
+Чтобы просмотреть процессы, выполняемые в системе, используйте man:ps[1] или man:top[1]. Для отображения статичного списка текущих процессов, их PID, объема используемой памяти и команд, которыми они были запущены, используйте man:ps[1]. Для отображения всех выполняемых процессов с периодическим обновлением списка каждые несколько секунд, чтобы интерактивно наблюдать за работой компьютера, используйте man:top[1].
-По умолчанию man:ps[1] показывает пользователю только те команды, которые запущены пользователем и владельцем которых он является.
-К примеру:
+По умолчанию man:ps[1] отображает только команды, выполняемые и принадлежащие текущему пользователю. Например:
-[source,shell]
+[source, shell]
....
% ps
....
-Выводимый текст должен быть похож на следующее:
+Вывод должен быть похож на следующий:
[.programlisting]
....
@@ -1562,30 +1317,22 @@ FreeBSD является многозадачной операционной с
8895 0 R+ 0:00.00 ps
....
-Выдача команды man:ps[1] организована в несколько столбцов.
-Столбец `PID` отображает идентификатор процесса.
-PID назначаются начиная с 1 и увеличиваются до 99999, а затем отсчёт начинается с начала.
-Однако PID не назначается повторно, если он уже используется.
-Столбец `TT` показывает терминал (tty), на котором выполняется программа, а `STAT` показывает состояние программы.
-`TIME` соответствует количеству времени, которое программа выполняется на центральном процессоре.
-Обычно это не то же самое время, что прошло с момента запуска программы, поскольку большинство программ проводят много времени в ожидании некоторого события, прежде чем занять время процессора.
-Наконец, `COMMAND` содержит команду, которая использовалась для запуска программы.
+Вывод команды man:ps[1] организован в несколько столбцов. В столбце `PID` отображается идентификатор процесса. PID начинаются с 1, достигают 99999, затем снова начинаются с начала. Однако, если PID уже используется, он не будет повторно назначен. Столбец `TT` показывает tty, на котором выполняется программа, а `STAT` отображает состояние программы. `TIME` — это время, в течение которого программа выполнялась на CPU. Обычно это не общее время с момента запуска программы, так как большинство программ проводят много времени в ожидании событий, прежде чем им потребуется время на CPU. Наконец, `COMMAND` — это команда, которая использовалась для запуска программы.
-Имеется множество различных опций для изменения выводимой информации.
-Один из наиболее полезных наборов опций это `auxww`, при этом `a` отображает информацию о всех запущенных процессах всех пользователей, `u` показывает имя и объём используемой памяти пользователя, владеющего процессом, `x` отображает информацию о процессах-даемонах, а `ww` указывает man:ps[1] на отображение всей командной строки для каждого процесса, вместо её обрезания в случае, если она слишком длинная, чтобы уместиться на экран.
+Доступно несколько различных опций для изменения отображаемой информации. Один из наиболее полезных наборов — `auxww`, где `a` показывает информацию обо всех запущенных процессах всех пользователей, `u` отображает имя пользователя и использование памяти владельцем процесса, `x` показывает информацию о процессах демонов, а `ww` заставляет man:ps[1] выводить полную командную строку для каждого процесса вместо её обрезки, когда она становится слишком длинной для экрана.
-Вывод man:top[1] выглядит похожим образом:
+Вывод команды man:top[1] выглядит аналогично:
-[source,shell]
+[source, shell]
....
% top
....
-Выводимый текст должен быть похож на следующее:
+Вывод должен быть похож на следующий:
[.programlisting]
....
-last pid: 9609; load averages: 0.56, 0.45, 0.36 up 0+00:20:03 10:21:46
+last pid: 9609; load averages: 0.56, 0.45, 0.36 up 0+00:20:03 10:21:46
107 processes: 2 running, 104 sleeping, 1 zombie
CPU: 6.2% user, 0.1% nice, 8.2% system, 0.4% interrupt, 85.1% idle
Mem: 541M Active, 450M Inact, 1333M Wired, 4064K Cache, 1498M Free
@@ -1606,336 +1353,240 @@ Swap: 2048M Total, 2048M Free
1427 dru 5 22 0 605M 86412K select 1 0:05 0.00% kdeinit4
....
-Вывод разбит на два раздела.
-Заголовок (первые пять или шесть строк) показывает PID последнего запущенного процесса, среднее значение загрузки системы (которое показывает насколько система занята), время работы системы с последней перезагрузки и текущее время.
-Остальные числа в заголовке относятся к количеству работающих процессов, объёму использования оперативной памяти и пространства подкачки, а также количеству времени, проводимого системой в различных состояниях центрального процессора.
-Если был загружен модуль файловой системы ZFS, то строка `ARC` содержит информацию о том, какой объём данных был считан из кэша оперативной памяти, а не с диска.
+Вывод разделён на две части. Заголовок (первые пять или шесть строк) показывает PID последнего запущенного процесса, среднюю загрузку системы (которая отражает, насколько система занята), время работы системы (время с последней перезагрузки) и текущее время. Остальные данные в заголовке относятся к количеству запущенных процессов, объёму используемой оперативной памяти и файла подкачки (свопа), а также времени, которое система проводит в различных состояниях процессора. Если загружен модуль файловой системы ZFS, строка `ARC` указывает, сколько данных было прочитано из кэша памяти, а не с диска.
-Под заголовком размещены несколько столбцов, содержащих информацию, похожую на результат работы man:ps[1], такую как PID, имя пользователя, объём времени ЦПУ и команда, которая запустила процесс.
-По умолчанию man:top[1] показывает также объём памяти, занятой процессом.
-Эта информация разделена на два столбца: один для суммарного объёма и один для занимаемого.
-Суммарный объём соответствует тому, что требовался приложению, а занимаемый соответствует объёму, фактически используемому сейчас.
+Ниже заголовка расположен ряд столбцов с информацией, аналогичной выводу команды man:ps[1], такой как PID, имя пользователя, объем CPU времени и команда, запустившая процесс. По умолчанию man:top[1] также отображает объем памяти, занимаемый процессом. Эта информация разделена на два столбца: один для общего размера и один для резидентного размера. Общий размер — это объем памяти, который потребовался приложению, а резидентный размер — это объем, который оно фактически использует в данный момент.
-man:top[1] автоматически обновляет экран каждые две секунды.
-Другое значение этого временного интервала может быть задано при помощи параметра `-s`.
+man:top[1] автоматически обновляет отображение каждые две секунды. Другой интервал можно указать с помощью `-s`.
[[basics-daemons]]
=== Прекращение процессов
-Одним из способов взаимодействия с любым работающим процессом или даемоном является отправка ему _сигнала_ при помощи команды man:kill[1].
-Имеется множество различных сигналов; некоторые из них имеют специальное значение, тогда как другие описаны в документации приложения.
-Пользователь может посылать какой-либо сигнал только тем процессам, владельцем которых он является, а отправка сигнала процессу какого-то другого пользователя приведёт к ошибке запрета доступа.
-Исключением является пользователь `root`, который может отправлять сигналы чьим угодно процессам.
+Один из способов взаимодействия с любым запущенным процессом или демоном — отправить _сигнал_ с помощью man:kill[1]. Существует множество различных сигналов; некоторые имеют определённое значение, в то время как другие описаны в документации приложения. Пользователь может отправлять сигналы только своим процессам, и попытка отправить сигнал чужому процессу приведёт к ошибке отказа в доступе. Исключением является пользователь `root`, который может отправлять сигналы любым процессам.
-Операционная система также может отправлять сигнал процессу.
-Если приложение написано некорректно и пытается обратиться к области памяти, к которой оно не должно обращаться, FreeBSD посылает процессу сигнал "Segmentation Violation" (`SIGSEGV`).
-Если приложение было написано с учётом использования системного вызова man:alarm[3] для получения уведомления по истечении определённого периода времени, то ему будет отправлен сигнал "Alarm" (`SIGALRM`).
+Операционная система также может отправлять сигналы процессу. Если приложение написано с ошибками и пытается получить доступ к памяти, к которой оно не должно обращаться, FreeBSD отправит процессу сигнал "Нарушение сегментации" (`SIGSEGV`). Если приложение было написано с использованием системного вызова man:alarm[3] для оповещения по истечении определенного времени, ему будет отправлен сигнал "Будильник" (`SIGALRM`).
-Для остановки процесса могут использоваться два сигнала: `SIGTERM` и `SIGKILL`.
-`SIGTERM` является вежливым способом завершить процесс, так как процесс может считать сигнал, закрыть какие-либо протоколирующие файлы, которые он мог открыть, и завершить то, что он делал до завершения работы.
-В некоторых случаях процесс может даже игнорировать `SIGTERM`, если выполняет задачу, которая не может быть прервана.
+Для остановки процесса могут использоваться два сигнала: `SIGTERM` и `SIGKILL`. `SIGTERM` — это вежливый способ завершить процесс, так как процесс может прочитать сигнал, закрыть все открытые файлы журналов и попытаться завершить текущие операции перед остановкой. В некоторых случаях процесс может игнорировать `SIGTERM`, если он находится в середине задачи, которую нельзя прервать.
-`SIGKILL` не может быть проигнорирован процессом.
-Отправка процессу `SIGKILL` обычно остановит этот процесс тотчас же.
+`SIGKILL` не может быть проигнорирован процессом. Отправка `SIGKILL` процессу обычно немедленно останавливает этот процесс. footnote:[Существует несколько задач, которые не могут быть прерваны. Например, если процесс пытается прочитать файл, находящийся на другом компьютере в сети, и этот компьютер недоступен, процесс считается непрерываемым. В конечном итоге процесс завершится по таймауту, обычно через две минуты. Как только это произойдет, процесс будет убит.].
-[NOTE]
-====
-Существует несколько задач, которые не могут быть прерваны.
-К примеру, если процесс пытается выполнить чтение файла, находящегося на другом компьютере в сети, а другой компьютер недоступен, то такой процесс называют "непрерываемым".
-В конце концов время процесса истечёт, обычно после двух минут ожидания.
-Как только такой таймаут случится, процесс будет прекращён.
-====
+Другие часто используемые сигналы — это `SIGHUP`, `SIGUSR1` и `SIGUSR2`. Поскольку они предназначены для общего применения, разные программы могут реагировать на них по-разному.
-Другими часто используемыми сигналами являются `SIGHUP`, `SIGUSR1` и `SIGUSR2`.
-Так как эти сигналы являются сигналами общего назначения, различные приложения будут реагировать на них по-разному.
-
-Например, после внесения изменений в конфигурационный файл веб-сервера ему нужно указать на повторное считывание настроек.
-Перезапуск `httpd` привёл бы к краткосрочной недоступности веб-сервера.
-Вместо этого отправьте даемону сигнал `SIGHUP`.
-Имейте в виду, что разные даемоны будут вести себя по-разному, поэтому обратитесь к документации по даемону для определения того, достигнет ли `SIGHUP` желаемых результатов.
+Например, после изменения конфигурационного файла веб-сервера необходимо указать веб-серверу перечитать его конфигурацию. Перезапуск `httpd` приведёт к кратковременному простою веб-сервера. Вместо этого отправьте демону сигнал `SIGHUP`. Учтите, что разные демоны могут вести себя по-разному, поэтому обратитесь к документации демона, чтобы определить, приведёт ли `SIGHUP` к желаемому результату.
[IMPORTANT]
====
-Прекращение случайного процесса в системе является плохой затеей.
-В частности, man:init[8], чей PID равен 1, является особенным процессом.
-Выполнение `/bin/kill -s KILL 1` является быстрым и нерекомендуемым способом завершить работу системы.
-_Всегда_ дважды проверяйте параметры запуска man:kill[1] _перед_ тем, как нажать на kbd:[Return].
+Убить случайный процесс в системе — плохая идея. В частности, man:init[8], PID 1, является особым. Запуск `/bin/kill -s KILL 1` — это быстрый, но не рекомендуемый способ выключить систему. _Всегда_ перепроверяйте аргументы для man:kill[1] _перед_ нажатием kbd:[Return].
====
[[shells]]
-== Командные процессоры
-
-_Командный процессор_ (или оболочка) предоставляет интерфейс командной строки для взаимодействия с операционной системой.
-Командный процессор получает команды из канала ввода и исполняет их.
-Многие командные интерпретаторы имеют встроенные функции, помогающие выполнять такие повседневной задачи, как управление файлами, включая их массовую обработку, редактирование командной строки, работа с макрокомандами и переменными окружения.
-FreeBSD поставляется вместе с несколькими командными процессорами, среди которых Bourne Shell (man:sh[1]) и расширенная версия C-shell (man:tcsh[1]),
-Другие командные процессоры, такие как `zsh` и `bash`, доступны в Коллекции портов FreeBSD.
-
-Выбор используемого интерпретатора командной строки на самом деле является делом вкуса.
-Программист на языке C может чувствовать себя более комфортно с C-подобной оболочкой типа man:tcsh[1].
-Пользователь Linux(R) может предпочесть `bash`.
-Каждый командный процессор имеет свои уникальные особенности, которые могут работать, а могут и не работать в рабочем окружении, которое предпочитает пользователь, и именно поэтому имеются варианты выбора используемой оболочки.
-
-Одной из распространённых функций оболочки командной строки является дополнение частичного имени файла до полного.
-После того, как пользователь набирает несколько первых символов команды или имени файла и нажимает клавишу kbd:[Tab], командный процессор дополняет имя команды или файла до полного наименования.
-Рассмотрим случай с двумя файлами, которые называются `foobar` и `football`.
-Для удаления `foobar` пользователь может набрать `rm foo` и нажать kbd:[Tab] для формирования полного имени файла.
-
-Однако оболочка только лишь отобразит `rm foo`.
-Сформировать полное имя файла невозможно, так как и `foobar`, и `football` начинаются с `foo`.
-Некоторые командные процессоры издадут звуковой сигнал или отобразят все варианты, если имеются совпадения более чем у одного имени.
-Тогда пользователь должен набрать дополнительные символы для идентификации желаемого имени файла.
-Набор `t` и повторное нажатие kbd:[Tab] достаточно для того, чтобы командный процессор определил желаемый файл и дополнил остаток его имени.
-
-Дополнительные возможности при работе с интерпретатором дает использование переменных окружения.
-Переменные окружения представляют собой пары переменная/значение, сохраняемые в рабочем окружении интерпретатора.
-Это рабочее окружение может быть прочитано любой программой, запущенной из командного интерпретатора, и, таким образом, содержит много информации для настройки приложения.
-crossref:basics[shell-env-vars,Часто используемые переменные окружения] содержит список часто используемых переменных окружения и их значений.
-Заметьте, что имена переменных окружения всегда пишутся заглавными буквами.
+== Оболочки
+
+_Оболочка_ предоставляет интерфейс командной строки для взаимодействия с операционной системой. Оболочка получает команды из входного канала и выполняет их. Многие оболочки предоставляют встроенные функции для помощи в повседневных задачах, таких как управление файлами, подстановка имён файлов (file globbing), редактирование командной строки, макросы команд и переменные окружения. FreeBSD поставляется с несколькими оболочками, включая Bourne shell (man:sh[1]) и расширенную C shell (man:tcsh[1]). Другие оболочки доступны в коллекции портов FreeBSD, например `zsh` и `bash`.
+
+Используемая оболочка — это действительно вопрос предпочтений. Программисту на C может быть удобнее работать с C-подобной оболочкой, такой как man:tcsh[1]. Пользователь Linux(R) может предпочесть `bash`. Каждая оболочка обладает уникальными свойствами, которые могут подходить или не подходить под предпочитаемую пользователем рабочую среду, поэтому существует выбор, какую оболочку использовать.
+
+Одной из распространённых возможностей оболочки является завершение имён файлов. Когда пользователь вводит первые несколько букв команды или имени файла и нажимает kbd:[Tab], оболочка автоматически дописывает оставшуюся часть команды или имени файла. Рассмотрим два файла с именами `foobar` и `football`. Чтобы удалить `foobar`, пользователь может ввести `rm foo` и нажать kbd:[Tab] для завершения имени файла.
+
+Но оболочка показывает только `rm foo`. Она не смогла завершить имя файла, потому что и `foobar`, и `football` начинаются с `foo`. Некоторые оболочки издают звуковой сигнал или показывают все варианты, если совпадает более одного имени. Пользователь должен затем ввести дополнительные символы, чтобы указать нужное имя файла. Ввод `t` и повторное нажатие kbd:[Tab] достаточно, чтобы оболочка определила, какое имя файла требуется, и заполнила остальное.
+
+Еще одна особенность оболочки — использование переменных окружения. Переменные окружения представляют собой пару переменная/ключ, хранящуюся в окружении оболочки. Это окружение может быть прочитано любой программой, запущенной оболочкой, и поэтому содержит множество настроек программ. В crossref:basics[shell-env-vars,Распространенные переменные окружения] приведен список распространенных переменных окружения и их значений. Обратите внимание, что имена переменных окружения всегда записываются в верхнем регистре.
[[shell-env-vars]]
-.Часто используемые переменные окружения
+.Распространенные переменные окружения
[cols="25h,~"]
|===
| Переменная
| Описание
|`USER`
-|Имя текущего пользователя.
+|Имя текущего вошедшего пользователя.
|`PATH`
-|Каталоги, разделенные двоеточием, для поиска исполняемых файлов.
+|Двоеточием разделённый список каталогов для поиска бинарных файлов.
|`DISPLAY`
-|Сетевое имя дисплея Xorg для подключения при его доступности.
+|Сетевое имя дисплея Xorg для подключения, если доступно.
|`SHELL`
-|Текущий командный интерпретатор.
+|Текущая оболочка.
|`TERM`
-|Тип терминала пользователя. Используется, чтобы узнать возможности терминала.
+|Имя типа терминала пользователя. Используется для определения возможностей терминала.
|`TERMCAP`
-|Список escape-последовательностей для управления различными функциями терминала.
+|Запись в базе данных escape-кодов терминала для выполнения различных функций терминала.
|`OSTYPE`
-|Вид операционной системы.
+|Тип операционной системы.
|`MACHTYPE`
-|Процессорная архитектура системы.
+|Архитектура процессора системы.
|`EDITOR`
-|Выбранный пользователем текстовый редактор.
+|Предпочитаемый текстовый редактор пользователя.
|`PAGER`
-|Предпочитаемая пользователем утилита для постраничного просмотра текста.
+|Предпочитаемая пользователем утилита для просмотра текста постранично.
|`MANPATH`
-|Каталоги, разделенные двоеточием, для поиска файлов системного справочника.
+|Двоеточием разделённый список каталогов для поиска страниц руководства.
|===
-Порядок установки значения переменной окружения различна для разных оболочек.
-В командных процессорах man:tcsh[1] и man:csh[1] для задания переменных окружения используется `setenv`.
-В интерпретаторах man:sh[1] и `bash` для задания актуального значения переменных окружения используется `export`.
-В этом примере для man:tcsh[1] значение по умолчанию для переменной `EDITOR` устанавливается равным `/usr/local/bin/emacs`:
+Как установить переменную окружения, зависит от используемой оболочки. В man:tcsh[1] и man:csh[1] используйте `setenv` для установки переменных окружения. В man:sh[1] и `bash` используйте `export` для установки текущих переменных окружения. В этом примере устанавливается значение `EDITOR` по умолчанию в `/usr/local/bin/emacs` для оболочки man:tcsh[1]:
-[source,shell]
+[source, shell]
....
% setenv EDITOR /usr/local/bin/emacs
....
-Аналогичная команда для `bash` была бы следующей:
+Эквивалентная команда для `bash` будет:
-[source,shell]
+[source, shell]
....
% export EDITOR="/usr/local/bin/emacs"
....
-Чтобы раскрыть значение переменной окружения для того, чтобы посмотреть её текущее значение, в командной строке наберите символ `$` перед именем переменной.
-Например, `echo $TERM` выведет актуальное значение для `$TERM`.
+Чтобы раскрыть переменную окружения и увидеть её текущее значение, введите символ `$` перед её именем в командной строке. Например, `echo $TERM` выведет текущее значение переменной `$TERM`.
-Командные процессоры обрабатывают специальные символы, называемые метасимволами, как особое обозначение данных.
-Самым общеупотребительным метасимволом является `\*`, который обозначает любое количество символов в имени файла.
-Метасимволы могут использоваться для выполнения массовых операций с именами файлов.
-Например, команда `echo *` равнозначна команде `ls`, поскольку оболочка выбирает все файлы, соответствующие `*`, а `echo` выдаёт их список в командной строке.
+Оболочки интерпретируют специальные символы, известные как метасимволы, как особые представления данных. Наиболее распространённый метасимвол — `\*`, который обозначает любое количество символов в имени файла. Метасимволы могут использоваться для подстановки имён файлов (globbing). Например, команда `echo *` эквивалентна `ls`, поскольку оболочка выбирает все файлы, соответствующие шаблону `\*`, а `echo` выводит их в командной строке.
-Чтобы предотвратить обработку специального символа командным процессором, экранируйте его, предварив наклонной чертой влево `\` (обратным слэшем).
-Например, `echo $TERM` выведет значение настройки терминала, тогда как `echo \$TERM` выведет в буквальном смысле строку `$TERM`.
+Чтобы предотвратить интерпретацию специального символа оболочкой, экранируйте его с помощью обратной косой черты (`\`). Например, `echo $TERM` выводит настройки терминала, тогда как `echo \$TERM` выводит строку `$TERM` буквально.
[[changing-shells]]
-=== Смена командного процессора
+=== Изменение оболочки
-Самым простым способом замены командного процессора, используемого по умолчанию, на постоянной основе является использование команды `chsh`.
-При запуске этой команды открывается редактор, настроенный в переменной окружения `EDITOR`, значение которой по умолчанию равно man:vi[1].
-Измените строку `Shell:`, указав полный путь для нового командного процессора.
+Самый простой способ навсегда изменить оболочку по умолчанию — использовать `chsh`. Запуск этой команды откроет редактор, настроенный в переменной окружения `EDITOR`, которая по умолчанию установлена в man:vi[1]. Измените строку `Shell:` на полный путь к новой оболочке.
-Альтернативным способом является использование команды `chsh -s`, которая настроит указанную оболочку без открытия редактора.
-Например, для замены командного процессора на `bash`:
+Или используйте `chsh -s`, который установит указанную оболочку без открытия редактора. Например, чтобы изменить оболочку на `bash`:
-[source,shell]
+[source, shell]
....
% chsh -s /usr/local/bin/bash
....
-Введите ваш пароль в строке приглашения и нажмите kbd:[Return] для смены вашего командного процессора.
-Для того, чтобы начать использовать новую оболочку, выйдите из системы и войдите в неё снова.
+Введите пароль в командной строке и нажмите kbd:[Return], чтобы изменить оболочку. Выйдите из системы и войдите снова, чтобы начать использовать новую оболочку.
[NOTE]
====
-Новая оболочка _обязательно_ должна присутствовать в файле `/etc/shells`.
-Если командный процессор был установлен из Коллекции портов FreeBSD, как это описано в главе <<ports>>, то он должен быть добавлен в этот файл автоматически.
-Если его там нет, добавьте его при помощи следующей команды, заменив путь на маршрут соответствующей оболочки:
+Новая оболочка *обязательно* должна присутствовать в `/etc/shells`. Если оболочка была установлена из Коллекции портов FreeBSD, как описано в crossref:ports[ports,Установка приложений: Пакеты и порты], она должна быть автоматически добавлена в этот файл. Если её там нет, добавьте её с помощью следующей команды, заменив путь на путь к вашей оболочке:
-[source,shell]
+[source, shell]
....
# echo /usr/local/bin/bash >> /etc/shells
....
-После этого запустите man:chsh[1] повторно.
+Затем снова запустите man:chsh[1].
====
-=== Расширенные функции оболочки
+=== Продвинутые методы работы с оболочкой
-Оболочка UNIX(R) является не только лишь интерпретатором команд, она также выступает в роли мощного инструмента, позволяющего пользователям выполнять команды, перенаправлять их результирующий и входной потоки, а также выстраивать последовательность команд для улучшения выдачи финализирующей команды.
-Когда такая функциональность объединяется со встроенными командами, пользователь получает окружение, которое может дать максимальный эффект.
+UNIX(R) оболочка — это не просто командный интерпретатор, а мощный инструмент, который позволяет пользователям выполнять команды, перенаправлять их вывод и ввод, а также объединять команды в цепочки для улучшения конечного результата. В сочетании со встроенными командами это предоставляет пользователю среду, способную максимизировать эффективность работы.
-Перенаправление на уровне оболочки представляет собой действие по отправке результата работы или входного потока какой-либо команды в другую команду или в файл.
-Для записи результата работы команды man:ls[1], например, в файл, перенаправьте выходной поток:
+Перенаправление в оболочке — это действие отправки вывода или ввода команды в другую команду или файл. Например, чтобы сохранить вывод команды man:ls[1] в файл, перенаправьте вывод:
-[source,shell]
+[source, shell]
....
% ls > directory_listing.txt
....
-Список содержимого каталога теперь будет находиться в `directory_listing.txt`.
-Некоторые команды, подобные man:sort[1], могут использоваться для чтения входного потока.
-Для сортировки этого списка перенаправьте входной поток:
+Содержимое каталога теперь будет отображено в файле `directory_listing.txt`. Некоторые команды, например man:sort[1], могут использоваться для чтения ввода. Чтобы отсортировать этот список, перенаправьте ввод:
-[source,shell]
+[source, shell]
....
% sort < directory_listing.txt
....
-Входной поток будет отсортирован и размещён на экране.
-Для перенаправления этого ввода в другой файл можно перенаправить выходной поток man:sort[1], объединив направление:
+Входные данные будут отсортированы и выведены на экран. Чтобы перенаправить эти данные в другой файл, можно перенаправить вывод `man:sort[1]`, изменив направление:
-[source,shell]
+[source, shell]
....
% sort < directory_listing.txt > sorted.txt
....
-Во всех примерах выше команды выполняют перенаправление при помощи файловых дескрипторов.
-В каждой системе UNIX(R) имеются файловые дескрипторы, среди которых имеются стандартный ввод (stdin), стандартный вывод (stdout) и стандартная диагностика (stderr).
-У каждого из них имеется своё назначение, и здесь вводом может быть клавиатура или мышь, что-то, формирующее входной поток.
-Выводом может быть экран или бумага в принтере.
-А диагностикой может быть что угодно, используемое для диагностических сообщений или сообщений об ошибках.
-Все три рассматриваются как файловые дескрипторы ввода-вывода и иногда рассматриваются как потоки.
+Во всех предыдущих примерах команды выполняют перенаправление с использованием файловых дескрипторов. Каждая UNIX(R)-система имеет файловые дескрипторы, включая стандартный ввод (stdin), стандартный вывод (stdout) и стандартный вывод ошибок (stderr). Каждый из них имеет своё назначение: ввод может осуществляться с клавиатуры или мыши — устройств, предоставляющих входные данные. Вывод может направляться на экран или бумагу в принтере. А ошибки — это всё, что используется для диагностических или сообщений об ошибках. Все три типа считаются файловыми дескрипторами, основанными на вводе-выводе, и иногда называются потоками.
-Посредством использования этих дескрипторов командный процессор обеспечивает прохождение ввода и вывода через различные команды и их перенаправление в файл или из файла.
-Ещё одним методом перенаправления является оператор конвейера.
+С помощью этих дескрипторов оболочка позволяет передавать вывод и ввод между различными командами и перенаправлять их в файл или из файла. Другой метод перенаправления — оператор конвейера.
-Оператор конвейера UNIX(R), "|", позволяет прямую передачу или перенаправление вывода одной команды в другую программу.
-Проще говоря, конвейер позволяет передавать стандартный вывод какой-либо команды в качестве стандартного ввода другой команде, к примеру:
+Оператор UNIX(R) pipe, `|`, позволяет передавать вывод одной команды напрямую или направлять его другой программе. По сути, pipe позволяет передать стандартный вывод одной команды в качестве стандартного ввода другой команды, например:
-[source,shell]
+[source, shell]
....
% cat directory_listing.txt | sort | less
....
-В этом примере содержимое `directory_listing.txt` будет отсортировано, а вывод передан в man:less[1].
-Это позволяет пользователю просматривать результат в собственном темпе и не позволяет выходить за рамки экрана.
+В этом примере содержимое файла `directory_listing.txt` будет отсортировано, а вывод передан в man:less[1]. Это позволяет пользователю прокручивать вывод в удобном темпе и предотвращает его исчезновение с экрана.
[[editors]]
== Текстовые редакторы
-Большинство настроек FreeBSD осуществляется редактированием текстовых файлов.
-В силу этого обстоятельства хорошей идеей является освоение текстового редактора.
-Несколько редакторов поставляются с FreeBSD в составе базового комплекта системы, и гораздо больше доступно в Коллекции портов.
+Большая часть настройки FreeBSD выполняется путём редактирования текстовых файлов, поэтому рекомендуется освоить текстовый редактор. В базовую систему FreeBSD входит несколько таких редакторов, а ещё больше доступно в Коллекции портов.
-Простым в освоении редактором является man:ee[1], что означает "easy editor" ("лёгкий редактор").
-Чтобы запустить его, наберите `ee _filename_`, где _filename_ является именем редактируемого файла.
-Внутри редактора все команды для управления его функциями перечислены вверху экрана.
-Карет (`^`) обозначает клавишу kbd:[Ctrl], таким образом, `^e` означает комбинацию клавиш kbd:[Ctrl+e].
-Чтобы выйти из man:ee[1], нажмите клавишу kbd:[Esc], затем выберите пункт "leave editor" в главном меню.
-Редактор запросит сохранение изменений, если файл был изменён.
+Простой редактор для освоения — это man:ee[1], что означает «легкий редактор». Чтобы запустить его, введите `ee _имя_файла_`, где _имя_файла_ — это имя редактируемого файла. Внутри редактора все команды для управления его функциями перечислены в верхней части экрана. Символ каретки (`^`) обозначает kbd:[Ctrl], поэтому `^e` означает kbd:[Ctrl+e]. Для выхода из man:ee[1] нажмите kbd:[Esc] и выберите пункт «покинуть редактор» в главном меню. Если файл был изменен, редактор предложит сохранить изменения.
-Во FreeBSD также имеются более мощные текстовые редакторы типа man:vi[1], поставляемого как часть базового системного комплекта.
-Другие редакторы, подобные package:editors/emacs[] и package:editors/vim[], являются частью Коллекции портов FreeBSD.
-Эти редакторы обладают большей функциональностью, но также они более сложны в изучении.
-Изучение более мощных редакторов типа vim или Emacs может сэкономить вам больше времени в долгосрочной перспективе.
+FreeBSD также включает более мощные текстовые редакторы, такие как man:vi[1], в составе базовой системы. Другие редакторы, например package:editors/emacs[] и package:editors/vim[], доступны в коллекции портов FreeBSD. Эти редакторы предоставляют больше возможностей, но их освоение сложнее. Изучение более мощного редактора, такого как vim или Emacs, может сэкономить время в долгосрочной перспективе.
-Многие приложения, модифицирующие файлы или требующие текстового ввода, автоматически открывают текстовый редактор.
-Чтобы сменить редактор, заданный по умолчанию, определите значение переменной окружения `EDITOR`, как это описано в разделе crossref:basics[shells, Командные процессоры].
+Многие приложения, которые изменяют файлы или требуют ввода текста, автоматически открывают текстовый редактор. Чтобы изменить редактор по умолчанию, установите переменную окружения `EDITOR`, как описано в crossref:basics[shells, Оболочки].
[[basics-devices]]
-== Устройства и файлы устройств
+== Устройства и Узлы Устройств
-Термин "устройство" используется в основном по отношению к аппаратному обеспечению системы, такому как диски, принтеры, графические адаптеры и клавиатуры.
-При загрузке FreeBSD основной объём выдаваемых сообщений относится к обнаруживаемым устройствам.
-Копии сообщений, выдаваемых при загрузке, сохраняются в `/var/run/dmesg.boot`.
+Устройство — это термин, в основном используемый для описания аппаратных компонентов системы, таких как диски, принтеры, видеокарты и клавиатуры. При загрузке FreeBSD большинство сообщений относятся к обнаружению устройств. Копия этих сообщений сохраняется в файле `/var/run/dmesg.boot`.
-Каждое устройство имеет имя и номер.
-Например, `ada0` соответствует первому приводу жёстких дисков с интерфейсом SATA, а `kbd0` представляет собой клавиатуру.
+У каждого устройства есть имя и номер. Например, `ada0` — это первый жёсткий диск SATA, а `kbd0` обозначает клавиатуру.
-Во FreeBSD доступ к большинству устройств обязательно должен осуществляться через специальные файлы, называемые узлами устройств, которые размещаются в `/dev`.
+Большинство устройств в FreeBSD должны быть доступны через специальные файлы, называемые узлами устройств, которые расположены в `/dev`.
[[basics-more-information]]
-+== Страницы Справочника
+== Справочник
-Пожалуй, самая полная документация по FreeBSD имеет форму страниц справочной системы. Практически каждое приложение или утилита имеют соответствующую страницу (часто не одну), описывающую основы работы и различные параметры.
-Эти справочники можно просматривать при помощи `man`:
+Наиболее полная документация по FreeBSD представлена в виде Справочника (manual pages). Почти каждая программа в системе имеет краткое справочное руководство, объясняющее основы работы и доступные аргументы. Эти руководства можно просматривать с помощью команды `man`:
-[source,shell]
+[source, shell]
....
% man command
....
-Здесь _command_ является названием команды, информацию о которой нужно получить.
-Например, чтобы узнать больше о команде man:ls[1], наберите:
+где _command_ — это название команды, о которой нужно узнать больше. Например, чтобы узнать больше о man:ls[1], введите:
-[source,shell]
+[source, shell]
....
% man ls
....
-Страницы Справочника разделены на разделы, соответствующие различному типу содержимого.
-Во FreeBSD имеются следующие разделы:
+Страницы Справочника разделены на разделы, которые обозначают тип темы. В FreeBSD доступны следующие разделы:
. Пользовательские команды.
. Системные вызовы и коды ошибок.
-. Функции стандартных библиотек.
+. Функции в библиотеках C.
. Драйверы устройств.
. Форматы файлов.
-. Развлечения и игры.
-. Дополнительная информация.
-. Команды системного администрирования.
+. Развлечения и другие игры.
+. Различная информация.
+. Системные команды обслуживания и эксплуатации.
. Интерфейсы ядра системы.
-В некоторых случаях одна и та же тема может появиться в различных разделах справочника.
-Например, существуют пользовательская команда `chmod` и системный вызов `chmod()`.
-Для указания команде man:man[1] искомого раздела задайте его номер:
+В некоторых случаях одна и та же тема может встречаться в нескольких разделах онлайн-руководства. Например, существует пользовательская команда `chmod` и системный вызов `chmod()`. Чтобы указать man:man[1], какой раздел отображать, укажите номер раздела:
-[source,shell]
+[source, shell]
....
% man 1 chmod
....
-При этом будет выведена справка о пользовательской команде man:chmod[1].
-По традиции документирования ссылки на конкретный раздел онлайного справочника указываются в скобках, так что man:chmod[1] относится к пользовательской команде, man:chmod[2] указывает на соответствующий системный вызов.
+Это отобразит справочную страницу для пользовательской команды man:chmod[1]. Ссылки на определённый раздел онлайн-руководства традиционно заключаются в скобки в письменной документации, поэтому man:chmod[1] относится к пользовательской команде, а man:chmod[2] — к системному вызову.
-Если название страницы Справочника неизвестно, воспользуйтесь `man -k` для поиска по ключевым словам, встречающимся в описаниях страниц Справочника:
+Если название страницы руководства неизвестно, используйте `man -k` для поиска ключевых слов в описаниях страниц руководства:
-[source,shell]
+[source, shell]
....
% man -k mail
....
-Эта команда выдаёт список команд, имеющих ключевое слово "mail" в своих описаниях.
-Это равнозначно использованию команды man:apropos[1].
+Эта команда выводит список команд, содержащих ключевое слово "mail" в их описаниях. Это эквивалентно использованию man:apropos[1].
-Чтобы прочитать описания всех команд из `/usr/sbin`, наберите:
+Чтобы прочитать описания всех команд в `/usr/sbin`, введите:
-[source,shell]
+[source, shell]
....
% cd /usr/sbin
% man -f * | more
@@ -1943,7 +1594,7 @@ crossref:basics[shell-env-vars,Часто используемые переме
или
-[source,shell]
+[source, shell]
....
% cd /usr/sbin
% whatis * |more
@@ -1952,16 +1603,13 @@ crossref:basics[shell-env-vars,Часто используемые переме
[[basics-info]]
=== Файлы GNU Info
-FreeBSD поставляется с некоторым количеством приложений и утилит, выпущенных Free Software Foundation (FSF).
-В дополнение к страницам справочника, с этими программами могут поставляться гипертекстовые документы в виде так называемых файлов `info`.
-Они могут быть просмотрены с помощью команды man:info[1] или, если установлен пакет package:editors/emacs[], в режиме info редактора emacs.
+FreeBSD включает несколько приложений и утилит, созданных Free Software Foundation (FSF). Помимо man-страниц, эти программы могут содержать гипертекстовые документы, называемые файлами `info`. Их можно просматривать с помощью man:info[1] или, если установлен package:editors/emacs[], в режиме info редактора emacs.
-Чтобы использовать man:info[1], наберите:
+Чтобы использовать man:info[1], введите:
-[source,shell]
+[source, shell]
....
% info
....
-Вызвать на экран краткое введение можно набрав `h`.
-Краткий список команд можно получить, набрав `?`.
+Для краткого введения введите `h`. Для быстрой справки по командам введите `?`.