From nobody Tue Dec 31 14:09:41 2024 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4YMvx14yn1z5jVh4 for ; Tue, 31 Dec 2024 14:09:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4YMvx14JfMz4qS9; Tue, 31 Dec 2024 14:09:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1735654181; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WMTTV9yen9AxC2WkkvWstriJ+noltl9an9SW5TUVmJg=; b=o0mRv2J3uhqRSQvUYzrNs+k8ZgBebse8irvYakEx09lY+OiElYwOQvwEpNfTvA8xoTk2Of XiUb2nJZ73W4Scp71XJTSqE8jjCqUBJSTe997h0jlrucXg15xeVy368GrJJWvnlFcbKz2w cjyyY5oUke9qOUpyHl//C1Cr8aNldkBGg6AXHX48/WwTkQmwVcv4GH72NmB3YsWJe3rVkv 7b+xlyxjxQUjzXMlVS9Ng4TtdtdSM0r4pv3PjKONJu1+wC23VUbQmSYeU3nheEo9oWrMFb h/ZSaqCF5wCR0FFZu9JFGaoJTf+7sZn0yNlQO8tzzrCjHSfrtFPTBFPND3kS3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1735654181; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WMTTV9yen9AxC2WkkvWstriJ+noltl9an9SW5TUVmJg=; b=y3LcH5j+LOiSm8ZZTqsXpww1Rl2DZ8RRU3ZumqTKEqswi2qWFOwpN6EpLqVMluZrMlK5Dq 4tjpTGwZCL73IzHlY/hYqegmE/GWL51H8nCtpRwyGrxCBxv/xe8TiuN5MW2FsbHqcsC3pC hDGTSL2JKScbfFuM9rtblhuoOzFSg0Vh8TlVSn5YqtRUmi5vxXaWkiWpriavsBL75PV4h8 9jgulGk1gsQKAEwUOR4AHU5CB58PBKBva5l5DyOtFcdn09qLRXnCOCqIkaq0Oi/xHqW/si HxdennXgsoPGzf37YN0O12Ho3V9ULDZnp1jW9pA9+6cdsK50vqf0A/gu1kM3Zg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1735654181; a=rsa-sha256; cv=none; b=HwG+xrvw2wmKM9GziZv+cw8yKlL/pOe6OITdttiVf62HhoIlFnYsUFh880RDbj4/a0URwa 8/u6wxAimhkeVh6J37VXxzzJrqdVpWAQqx1oM5u1l/v4PrzvrRvgR6jUoglfKP2HTYY5hG q7K2Fc2WcjMe+EIK1B7qvymyDQ0ayNIsTd35AydF67lOTbIYM4T0CpPyAI3tb3o3a8QTkn oDGhKw/01iih0w5qn9ODLagUQsvHg0YQnajo0Q1YR1PBt0uCFFaF8nv0vLY6/K2rAJDsdJ z2ntTT/7mM3Z5++jnuXRi/N0yTcLNl+4TydyWFXv+LjLq4vCgngbKzxLtXUyzA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4YMvx13MMgzj3g; Tue, 31 Dec 2024 14:09:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4BVE9f1t064696; Tue, 31 Dec 2024 14:09:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4BVE9fRw064693; Tue, 31 Dec 2024 14:09:41 GMT (envelope-from git) Date: Tue, 31 Dec 2024 14:09:41 GMT Message-Id: <202412311409.4BVE9fRw064693@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Sergio Carlavilla Delgado Subject: git: 91d5f709ef - main - Handbook - Basics: Upgrade Russian translation List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: carlavilla X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 91d5f709efa8a9393bb7bf31ca48a4adbb069307 Auto-Submitted: auto-generated The branch main has been updated by carlavilla: URL: https://cgit.FreeBSD.org/doc/commit/?id=91d5f709efa8a9393bb7bf31ca48a4adbb069307 commit 91d5f709efa8a9393bb7bf31ca48a4adbb069307 Author: Andrei Zakhvatov AuthorDate: 2024-12-31 14:08:18 +0000 Commit: Sergio Carlavilla Delgado CommitDate: 2024-12-31 14:08:18 +0000 Handbook - Basics: Upgrade Russian translation PR: 282059 Reviewed by: maxim@ --- .../content/ru/books/handbook/basics/_index.adoc | 1619 +++++++++++--------- 1 file changed, 926 insertions(+), 693 deletions(-) diff --git a/documentation/content/ru/books/handbook/basics/_index.adoc b/documentation/content/ru/books/handbook/basics/_index.adoc index d79f7077c9..53efe2e843 100644 --- a/documentation/content/ru/books/handbook/basics/_index.adoc +++ b/documentation/content/ru/books/handbook/basics/_index.adoc @@ -1,22 +1,24 @@ --- -title: Глава 4. Основы UNIX -part: Часть I. В начале +title: Глава 3. Основы FreeBSD +part: Часть I. Начало работы prev: books/handbook/bsdinstall next: books/handbook/ports +description: Основные команды и функциональность операционной системы FreeBSD +tags: ["основы", "виртуальные консоли", "пользователи", "управление", "полномочия", "структура каталогов", "организация диска", "монтирование", "процессы", "даемоны", "оболочка", "редактор", "страницы справочника", "устройства"] showBookMenu: true -weight: 6 +weight: 5 path: "/books/handbook/basics/" --- [[basics]] -= Основы UNIX += Основы FreeBSD :doctype: book :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 4 +:sectnumoffset: 3 :partnums: :source-highlighter: rouge :experimental: @@ -46,177 +48,166 @@ toc::[] include::../../../../../shared/asciidoctor.adoc[] endif::[] +// +// The FreeBSD Russian Documentation Project +// +// Original EN revision (23.09.2024): c6f45f005306d23f396e1ec9ddff165312aad867 +// + [[basics-synopsis]] == Краткий обзор -В этой главе мы попытаемcя раскрыть основные принципы и команды операционной системы FreeBSD. Большая часть нижеизложенного материала в более или менее равной степени применима к любой UNIX(R)-подобной операционной системе. Если вы уверены, что не найдете здесь ничего нового для себя, можете смело пропустить эту главу. Если же вы новичок, мы настоятельно рекомендуем внимательно прочесть это главу. +Эта глава посвящена основным командам и функциональности операционной системы FreeBSD. +Большая часть нижеизложенного материала применима к любой UNIX(R)-подобной операционной системе. +Новые пользователи FreeBSD призываются к внимательному чтению всей главы. -Прочитав эту главу, вы узнаете: +Прочитав эту главу, вы будете знать: -* Как использовать "виртуальные консоли" FreeBSD. -* Как работают права доступа на файлы в UNIX(R) и как следует интерпретировать флаги файлов в ОС FreeBSD. -* Иерархия каталогов FreeBSD. -* Организация дисков FreeBSD. +* Как использовать и настраивать виртуальные консоли. +* Как создавать пользователей и группы пользователей во FreeBSD и управлять ими. +* Как работают права доступа на файлы в UNIX(R) и файловые флаги во FreeBSD. +* Иерархию каталогов FreeBSD. +* Организацию дисков FreeBSD. * Как монтировать и размонтировать файловые системы. * Что такое процессы, даемоны и сигналы. -* Что такое командная оболочка (или интерпретатор команд) и как настроить личное рабочее окружение. +* Что такое командный процессор и как изменить используемые по умолчанию параметры рабочего окружения. * Как пользоваться стандартными текстовыми редакторами. * Что такое устройства и файлы устройств. -* Какие бинарные форматы используются в FreeBSD. * Как пользоваться справочным руководством для получения дополнительной информации. [[consoles]] == Виртуальные консоли и терминалы -FreeBSD можно использовать разными способами. Один из них - набор команд в текстовом терминале. Используйте этот способ, и вся гибкость и мощь систем UNIX(R) будет в ваших руках. Этот раздел рассказывает о "терминалах", "консолях" и их использовании в FreeBSD. - -[[consoles-intro]] -=== Консоль - -Если во время установки вы не настроили FreeBSD для автоматического запуска графической среды при загрузке, система запросит ввод логина сразу после завершения стартовых скриптов. Вы увидите примерно следующее: - -[source,shell] -.... -Additional ABI support:. -Local package initialization:. -Additional TCP options:. - -Fri Sep 20 13:01:06 EEST 2002 - -FreeBSD/i386 (pc3.example.org) (ttyv0) - -login: -.... - -В вашей системе сообщение может быть другим, но очень похожим на это. В данный момент нас интересуют последние две строки. Вторая с конца строка: - -[.programlisting] -.... -FreeBSD/i386 (pc3.example.org) (ttyv0) -.... - -В этой строке содержится немного информации о только что загруженной системе. Это консоль "FreeBSD", работающей на Intel или совместимом процессоре x86 архитектуры. Имя этого компьютера (у каждого компьютера UNIX(R) есть имя) `pc3.example.org`, и в данный момент вы видите системную консоль - терминал [.filename]#ttyv0#. - -Наконец, последняя строка всегда: +Если только FreeBSD не была настроена на автоматический запуск графической среды при загрузке, система будет запускаться в режиме запроса ввода имени учётной записи в командной строке, как в этом примере: [.programlisting] .... login: .... -Здесь вам предлагается ввести "имя пользователя", чтобы войти в FreeBSD. Следующий раздел описывает способ, которым вы можете сделать это. +Первая строка содержит определённую информацию о системе. +`amd64` указывает на то, что FreeBSD работает в 64-разрядной системе x86. +`pc3.example.org` является именем хоста, а `ttyv0` указывает на то, что это "системная консоль". +Вторая строка является приглашением к входу в систему. -[[consoles-login]] -=== Вход в FreeBSD +Поскольку FreeBSD является многопользовательской системой, она должна каким-то образом отличать различных пользователей. +Это достигается за счёт того, что каждый пользователь перед получением доступа к программам системы должен в эту систему войти. +Каждый пользователь имеет уникальное "имя пользователя" и персональный "пароль". -FreeBSD это многопользовательская, многопроцессорная система. Это формальное описание системы, которая может быть использована множеством разных людей, одновременно запускающих большое количество программ на одном компьютере. +Для входа в системную консоль наберите имя пользователя, которое было настроено во время установки системы, описанной в разделе <>, и нажмите kbd:[Enter]. +Затем введите пароль, соответствующий этому имени пользователя и нажмите kbd:[Enter]. +Пароль _не отображается_ по соображениям безопасности. -Любой многопользовательской системе нужен способ отличать каждого "пользователя" от остальных. В FreeBSD (и всех UNIX(R)-подобных операционных системах), эта задача решается путем "входа" пользователя в систему перед запуском каких-либо программ. У каждого пользователя есть уникальное имя ("имя пользователя") и персональный, секретный ключ ("пароль"). Перед тем, как разрешить пользователю выполнять какие-либо программы, FreeBSD запрашивает их оба. - -Сразу после загрузки FreeBSD и завершения работы стартовых скриптов, система предложит вам ввести имя пользователя: - -[source,shell] -.... -login: -.... - -В этом примере, предположим что ваше имя пользователя `john`. Введите `john` в этом приглашении и нажмите kbd:[Enter]. Далее должно появиться приглашение ввести "пароль": - -[source,shell] -.... -login: john -Password: -.... - -Введите соответствующий имени `john` пароль и нажмите kbd:[Enter]. Пароль _не виден_! Не беспокойтесь об этом. Это сделано по соображениям безопасности. - -Если вы ввели пароль правильно, то сразу же войдете в FreeBSD и можете начать выполнять команды. - -Вы увидите сообщение дня (MOTD, или message of the day) за которым последует командная строка (с символом `#`, `$`, или `%`). Это означает, что вы успешно вошли в FreeBSD. +После ввода корректного пароля будет выдано сообщение дня (MOTD, Message Of The Day), за которым последует приглашение командной строки. +В зависимости от командного процессора, который был выбран при создании пользователя, таким приглашением будет символ `+#+`, `$` или `%`. +Это приглашение указывает на то, что теперь пользователь вошёл в системную консоль FreeBSD и может попытаться использовать имеющиеся команды. [[consoles-virtual]] -=== Множественные консоли +=== Виртуальные консоли -Запуск команд UNIX(R) из консоли - это конечно хорошо, но FreeBSD может выполнять множество программ одновременно, поэтому наличие одной консоли может быть недостатком. В таком случае очень полезны "виртуальные консоли". +Хотя системная консоль может использоваться для взаимодействия с системой, пользователь, работающий в режиме командной строки за клавиатурой системы FreeBSD, как правило, будет входить в систему через виртуальную консоль. +Это так, потому что по умолчанию выдача системных сообщений настроена на их отображение на системной консоли. +Эти сообщения будут выдаваться поверх команд или файлов, с коорым работает пользователь, что мешает сосредоточиться на текущей работе. -FreeBSD может быть настроена для работы с несколькими виртуальными консолями. Вы можете переключаться с одной виртуальной консоли на другую, нажимая соответствующие сочетания клавиш на клавиатуре. У каждой консоли есть свой канал вывода и FreeBSD заботится о том, чтобы правильно перенаправить ввод с клавиатуры и вывод на монитор, как только вы переключитесь с одной консоли на другую. +По умолчанию FreeBSD настроена так, что она предоставляет несколько виртуальных консолей для ввода команд. +Каждая виртуальная консоль обладает собственным приглашением к входу в систему и командным процессором, а переключение между виртуальными консолями выполняется легко. +В итоге это равнозначно предоставлению нескольких одновременно открытых окон в графической среде, но в режиме командной строки. -Для переключения между консолями зарезервированы специальные комбинации клавиш. Вы можете использовать сочетания kbd:[Alt+F1], kbd:[Alt+F2], до kbd:[Alt+F8] чтобы переключаться между различными виртуальными консолями в 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]. -При переключении от одной консоли к другой, FreeBSD заботится о сохранении и восстановлении вывода на экран. Результатом является "иллюзия" наличия множества "виртуальных" экранов и клавиатур, которые могут быть использованы для ввода и запуска команд FreeBSD. Программы, которые вы запускаете на одной виртуальной консоли, не прекращают выполнение, когда консоль становится невидимой. Они продолжают выполняться, когда вы переключаетесь на другую виртуальную консоль. +При переключении от одной консоли к другой FreeBSD берёт на себя управление изображением на экране. +В результате создаётся видимость наличия множества виртуальных экранов и клавиатур, которые могут быть использованы при наборе команд для их запуска во FreeBSD. +Программы, запущенные на одной из виртуальных консолей, не прекращают своей работы, когда пользователь переключается на другую виртуальную консоль. -[[consoles-ttys]] -=== Файл [.filename]#/etc/ttys# +Обратитесь к man:kbdcontrol[1], man:vidcontrol[1], man:atkbd[4], man:syscons[4] и man:vt[4] для получения дополнительных технических описаний консоли FreeBSD и драйверов её клавиатуры. -В конфигурации по умолчанию FreeBSD запускает восемь виртуальных консолей. Тем не менее, это не ограничение оборудования, и вы можете легко настроить систему для загрузки большего или меньшего числа виртуальных консолей. Число и параметры виртуальных консолей задаются в файле [.filename]#/etc/ttys#. - -Вы можете использовать это файл для настройки виртуальных консолей FreeBSD. Любая не закомментированная строка в этом файле (строка, не начинающаяся с символа `#`), содержит настройки для одного терминала или виртуальной консоли. Версия этого файла по умолчанию, поставляемая с FreeBSD, содержит настройки для девяти виртуальных консолей и включает восемь терминалов. Это строки, начинающиеся с `ttyv`: +Во FreeBSD количество доступных виртуальных консолей настраивается в следующем разделе файла `/etc/ttys`. [.programlisting] .... -# name getty type status comments +# name getty type status comments # -ttyv0 "/usr/libexec/getty Pc" cons25 on secure +ttyv0 "/usr/libexec/getty Pc" xterm on secure # Virtual terminals -ttyv1 "/usr/libexec/getty Pc" cons25 on secure -ttyv2 "/usr/libexec/getty Pc" cons25 on secure -ttyv3 "/usr/libexec/getty Pc" cons25 on secure -ttyv4 "/usr/libexec/getty Pc" cons25 on secure -ttyv5 "/usr/libexec/getty Pc" cons25 on secure -ttyv6 "/usr/libexec/getty Pc" cons25 on secure -ttyv7 "/usr/libexec/getty Pc" cons25 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 .... -За детальным описанием каждой колонки этого файла и всех опций, которые можно указать для настройки виртуальных консолей, обращайтесь к man:ttys[5]. +Для отключения какой-либо виртуальной консоли поместите символ комментария (`+#+`) в начале строки, соответствующей этой виртуальной консоли. +К примеру, для уменьшения количества доступных виртуальных консолей с восьми до четырёх поместите `+#+` в начале последних четырёх строк, представляющих виртуальные консоли с `ttyv5` по `ttyv8`. +_Не комментируйте_ строку системной консоли `ttyv0`. +Заметьте, что последняя виртуальная консоль (`ttyv8`) используется для доступа к графическому окружению, если был установлен пакет Xorg, как это описано в главе crossref:x11[x11,X Window System]. ++ +За детальным описанием каждой колонки этого файла и доступных параметров виртуальных консолей обратитесь к man:ttys[5]. [[consoles-singleuser]] -=== Консоль в однопользовательском режиме - -Детальное описание "однопользовательского режима" можно найти в crossref:boot[boot-singleuser,Однопользовательский режим]. Стоит отметить, что при работе FreeBSD в однопользовательском режиме есть только одна консоль. Виртуальных консолей нет. Установки консоли в однопользовательском режиме можно найти в файле [.filename]#/etc/ttys#. Обратите внимание на строку, начинающуюся с `console`: +=== Однопользовательский режим + +В загрузочном меню FreeBSD имеется пункт, который называется "Boot Single User". +При его выборе система загрузится в специальном режиме, который называется "однопользовательским". +Этот режим обычно используется для восстановления работоспособности системы, которая не загружается, или для сброса пароля пользователя `root`, когда он неизвестен. +В однопользовательском режиме недоступны сетевые функции и дополнительные виртуальные консоли. +При всём при этом имеется полный доступ к системе с полномочиями пользователя `root`, и по умолчанию пароль пользователя `root` не требуется. +По этим причинам для загрузки в таком режиме требуется физический доступ к клавиатуре, а решение о том, кто имеет физический доступ к клавиатуре, стоит рассматривать в контексте обеспечения безопасности системы FreeBSD. ++ +Настройки, управляющие однопользовательским режимом, находятся в следующем разделе файла `/etc/ttys`: [.programlisting] .... -# name getty type status comments +# name getty type status comments # -# If console is marked "insecure", then init will ask for the root password -# when going to single-user mode. -console none unknown off secure +# Если консоль помечена как "insecure", то init будет запрашивать пароль +# пользователя root при переходе в однопользовательский режим +console none unknown off secure .... +По умолчанию столбец status установлен в значение `secure`. +Это предполагает, что физический доступ к клавиатуре либо не важен, либо контролируется политикой физической безопасности. +Если изменить этот параметр на `insecure`, то это будет означать, что само по себе окружение не является безопасным, так как любой может получить доступ к клавиатуре. +Когда в этой строке значение меняется на `insecure`, то FreeBSD будет запрашивать пароль пользователя `root` в случае, когда пользователь выберет загрузку в однопользовательском режиме. + [NOTE] ==== -Как сказано в комментариях выше строки `console`, можно отредактировать эту строку и изменить `secure` на `insecure`. Если вы сделаете это, FreeBSD даже при загрузке в однопользовательском режиме будет запрашивать пароль `root`. - -__Будьте осторожны при изменении этого значения на ``insecure``__. Если вы забудете пароль `root`, загрузка в однопользовательский режим сильно усложнится. Это все еще возможно, но несколько более сложно для тех, кто еще не очень освоился с процессом загрузки FreeBSD и вызова программ. +_Будьте осторожны при изменении этого параметра на `insecure`!_ +Если пароль пользователя `root` забыт, то загрузка в однопользовательском режиме всё ещё будет возможна, но может быть затруднена для тех, кто незнаком с процессом загрузки FreeBSD. ==== [[consoles-vidcontrol]] === Изменение видеорежимов консоли -Установленный по умолчанию размер изображения для консоли FreeBSD может быть изменен до значения 1024x768, 1280x1024, или любого другого, который поддерживается вашим монитором и видеокартой. Для того, чтобы задействовать иной видеорежим, вам прежде всего необходимо будет пересобрать ядро вашей системы, добавив в файл конфигурации две дополнительные опции: +Установленный по умолчанию режим видео для консоли FreeBSD может быть изменён до значения 1024x768, 1280x1024 или любого другого, который поддерживается вашим монитором и видеокартой. +Для использования другого видеорежима загрузите модуль `VESA`: -[.programlisting] +[source,shell] .... -options VESA -options SC_PIXEL_MODE +# kldload vesa .... -После пересборки и установки ядра воспользуйтесь утилитой man:vidcontrol[1] для определения видеорежимов, поддерживаемых вашим оборудованием. Чтобы получить перечень видеорежимов, выполните следующую команду: +Для определения того, какие видеорежимы поддерживаются вашим оборудованием, воспользуйтесь man:vidcontrol[1]. +Чтобы получить список поддерживаемых видеорежимов, выполните следующую команду: [source,shell] .... # vidcontrol -i mode .... -Команда отобразит список поддерживаемых видеорежимов. Теперь вы можете выбрать один из них и установить его на консоли при помощи man:vidcontrol[1]: +Выдача этой команды отобразит список видеорежимов, поддерживаемых оборудованием. +Для выбора нового видеорежима укажите его при помощи man:vidcontrol[1], работая как пользователь `root`. [source,shell] .... # vidcontrol MODE_279 .... -Если новый видеорежим вас устраивает, то его можно определить устанавливаемым автоматически во время старта системы, для чего добавьте в [.filename]#/etc/rc.conf# следующую строку: +Если новый видеорежим приемлем, то его можно определить постоянно устанавливаемым при загрузке, добавив его в `/etc/rc.conf`: [.programlisting] .... @@ -224,88 +215,118 @@ 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]. +Для того, чтобы поддерживать обратную совместимость с приложениями, рекомендуется использовать имена пользователей, состоящие из восьми или меньшего количества символов в нижнем регистре. Пароль:: -С каждой учетной записью связан пароль. +У каждой учётной записи имеется связанный с ней пароль. -ID пользователя (User ID, UID):: -Идентификатор пользователя (UID) - это номер, используемый для однозначной идентификации пользователя в системе FreeBSD. Любая команда, принимающая в качестве аргумента имя пользователя, первым делом преобразует его к UID. Рекомендуется выбирать значения UID, не превышающие 65535, так как большие значения могут вызывать проблемы совместимости для некоторых пользовательских программ. +Идентификатор пользователя (UID):: +Идентификатор пользователя (UID) является числом, используемым для однозначной идентификации этого пользователя в системе FreeBSD. +Команды, позволяющие указывать имя пользователя, сначала будут преобразовывать его в UID. +Рекомендуется использовать UID меньше 65535, так как более высокие значения могут вызвать проблемы совместимости с некоторым программным обеспечением. -Идентификатор группы (Group ID, GID):: -Идентификатор группы (GID) - это номер, используемый для однозначной идентификации главной группы, к которой принадлежит пользователь. Группы это механизм для контроля доступа к ресурсам на основе GID пользователя вместо его UID. Это может значительно уменьшить размер некоторых файлов настройки. Кроме того, пользователь может быть включен более чем в одну группу. Рекомендуется использовать значения GID, не превышающие 65535, так как большие значения могут стать проблемой для некоторых программ. +Идентификатор группы (GID):: +Идентификатор группы (GID) является числом, используемым для однозначной идентификации основной группы, которой принадлежит пользователь. +Группы являются механизмом контроля доступа к ресурсам на основе GID пользователя, а не его UID. +Это может значительно уменьшить размер некоторых конфигурационных файлов, а также позволяет пользователям быть членами более чем одной группы. +Рекомендуется использовать значения GID, не превышающие 65535, так как превышение может вызвать сбои некоторого программного обеспечения. Класс доступа (login class):: -Классы доступа это расширение к механизму групп, позволяющее более гибко приспосабливать систему для различных пользователей. Классы доступа описаны в <>. +Классы доступа являются расширением механизма групп, дающим дополнительную гибкость при адаптации системы к различным пользователям. +Классы доступа описываются в разделе crossref:security[users-limiting,Настройка классов доступа]. -Срок действия пароля:: -По умолчанию пароли не устаревают. Однако, есть возможность ограничить срок действия текущего пароля пользователя, и тем самым обязать его обновить пароль. +Периодичность смены пароля:: +По умолчанию пароли не устаревают. +Однако устаревание пароля может быть включено по отдельности у каждого пользователя, принуждая всех или некоторых пользователей менять свои пароли по истечении определённого периода времени. -Срок действия учетной записи:: -По умолчанию во FreeBSD время действия учетных записей не ограничено. При создании учетных записей ограниченного срока действия, например для студентов в учебном заведении, при помощи man:pw[8] укажите дату истечения действия учетной записи. После наступления указанной даты учетная запись становится непригодной для входа в систему, хотя каталоги и файлы этой учетной записи останутся нетронутыми. +Время действия учётной записи:: +По умолчанию во FreeBSD время действия учётных записей не ограничено. +При создании учётных записей с ограниченным сроком действия, например, учётных записей студентов учебного заведения, укажите дату истечения действия учетной записи при помощи man:pw[8]. +После наступления указанной даты учётная запись не может быть использована для входа в систему, хотя каталоги и файлы, соответствующие этой учётной записи, не исчезнут. Полное имя пользователя:: -Имя пользователя является уникальным идентификатором учетной записи в FreeBSD, однако оно не обязано соответствовать реальному имени пользователя. Это поле может содержать реальное имя пользователя. Здесь допустимы пробелы, символы подчеркивания, строка не ограничена до 8 символов. +Имя пользователя является уникальным идентификатором учётной записи для FreeBSD, однако оно не обязательно соответствует реальному имени пользователя. +Подобно комментариям, эта информация может содержать пробелы, заглавные буквы и иметь длину более 8 символов. Домашний каталог:: -Домашний каталог определяется полным путем в системе. С него пользователь начнет работу после входа в систему. По общепринятому соглашению все домашние каталоги пользователей помещаются в [.filename]#/home/username# или [.filename]#/usr/home/username#. Пользователи хранят личные файлы и подкаталоги в своих домашних каталогах. +Домашний каталог является полным путём к некоторому каталогу в системе. +Это начальный каталог пользователя после его входа в систему. +По общепринятому соглашению все домашние каталоги пользователей размещаются в `/home/username` или `/usr/home/username`. +Пользователи хранят свои личные файлы и подкаталоги в своих домашних каталогах. Оболочка пользователя:: -Оболочка необходима пользователям как средство взаимодействия с системой. Существует множество различных видов оболочек, опытные пользователи работают с собственными настройками, которые могут быть отражены в установках их учетных записей. +Оболочка обеспечивает стандартное пользовательское окружение для взаимодействия с системой. +Существует множество различных видов оболочек, и у опытных пользователей будут свои предпочтения, которые могут быть отражены в настройках их учётных записей. [[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] ==== @@ -322,15 +343,20 @@ Password: ==== -Утилита man:su[1] прекрасно подходит для одиночных систем или небольших сетей с единственным системным администратором. В качестве альтернативы ей следует упомянуть порт или пакет package:security/sudo[]. Эта утилита предоставляет журналирование активности, а также позволяет администратору указывать перечень утилит, доступных пользователю для запуска с правами суперпользователя. +Стандартный механизм man:su[1] хорошо работает для отдельных инсталляций или небольших сетей с единственным системным администратором. +Альтернативой является установка пакета или порта package:security/sudo[]. +Данное программное обеспечение обеспечивает протоколирование активностей и позволяет администратору настраивать, какие команды и какими пользователями могут запускаться с полномочиями суперпользователя. [[users-modifying]] -=== Изменение учетных записей +=== Управление учётными записями + +FreeBSD предоставляет набор различных команд для управления учётными записями пользователей. +Наиболее часто используемые команды перечислены в разделе crossref:basics[users-modifying-utilities,Инструменты для управления учётными записями], атем даны некоторые примеры их использования. +Обратитесь к страницам Справочника каждой утилиты для получения дополнительной информации и примеров использования. -FreeBSD располагает набором различных команд для работы с учетными записями пользователей. <> перечисляет наиболее часто используемые команды, ниже находятся примеры их использования. За исчерпывающей информацией по каждой утилите следует обратиться к соответствующим страницам справочников. [[users-modifying-utilities]] -.Утилиты для управления учетными записями -[cols="1,1", frame="none", options="header"] +.Инструменты для управления учётными записями +[cols="25h,~"] |=== | Команда | Краткое описание @@ -348,24 +374,39 @@ FreeBSD располагает набором различных команд д |Инструмент командной строки для изменения паролей пользователей. |man:pw[8] -|Мощный и гибкий инструмент для изменения любой информации, связанной с учетными записями пользователей. +|Мощный и гибкий инструмент для изменения всех параметров пользовательских учётных записей. + +|man:bsdconfig[8] +|Инструмент настройки системы с поддержкой управления учётными записями. |=== [[users-adduser]] -==== `adduser` +==== Добавление пользователя -Для добавления новых пользователей рекомендуется использовать man:adduser[8]. При добавлении нового пользователя программа автоматически обновляет [.filename]#/etc/passwd# и [.filename]#/etc/group#. Она также создает домашний каталог для нового пользователя, копируя файлы настройки по умолчанию из [.filename]#/usr/shared/skel#, и может отправлять новому пользователю приветственное сообщение электронной почтой. Эту утилиту необходимо запускать с правами суперпользователя. +Рекомендуемой программой для добавления новых пользователей является man:adduser[8]. +При добавлении нового пользователя эта программа автоматически обновляет `/etc/passwd` и `/etc/group`. +Она также создаёт домашний каталог для этого пользователя, копирует стандартные конфигурационные файлы из `/usr/share/skel` и опционально может отправить новому пользователю по электронной почте приветственное сообщение. +Эта утилита должна запускаться с полномочиями суперпользователя. -Утилита man:adduser[8] является интерактивной. Для создания новой учетной записи потребуется ответить на несколько вопросов. Как показано в <>, ответом считается либо ввод необходимой информации, либо нажатие клавиши kbd:[Return] для принятия значения по умолчанию, которое показано в квадратных скобках. В этом примере пользователь включен в группу `wheel`, что дает возможность ему повышать привилегии до суперпользователя при помощи man:su[1]. На последнем шаге утилита предложит создать еще одну учетную запись или завершить работу. +Утилита man:adduser[8] является интерактивной и следует шагам создания новой учётной записи пользователя. +Как показано в разделе crossref:basics[users-modifying-adduser, Добавление пользователя во FreeBSD], вводите запрашиваемую информацию либо нажимайте kbd:[Return] для принятия значения по умолчанию, отображаемого в квадратных скобках. +В этом примере пользователь был приглашён в группу `wheel`, позволяющей работать с полномочиями суперпользователя при помощи man:su[1]. +По окончании утилита выдаст запрос на создание ещё одного пользователя или завершение работы. [[users-modifying-adduser]] -.Добавление пользователя в FreeBSD +.Добавление пользователя во FreeBSD [example] ==== [source,shell] .... # adduser +.... + +Выводимый текст должен быть похож на следующее: + +[.programlisting] +.... Username: jru Full name: J. Random User Uid (Leave empty for default): @@ -394,75 +435,92 @@ OK? (yes/no): yes adduser: INFO: Successfully added (jru) to the user database. Add another user? (yes/no): no Goodbye! -# .... ==== [NOTE] ==== -При наборе пароля текст не отображается, поэтому постарайтесь не допускать опечаток в пароле при создании учетной записи. +Так как при наборе пароля он не отображается, будьте внимательны к опечаткам при его вводе при создании пользовательской учётной записи. ==== [[users-rmuser]] -==== `rmuser` +==== Удаление пользователя -Для полного удаления пользователя из системы запустите man:rmuser[8] с правами суперпользователя. Эта программа выполняет следующие действия: +Для полного удаления пользователя из системы запустите man:rmuser[8] с полномочиями суперпользователя. +Эта команда выполняет следующие шаги: [.procedure] ==== -. Если в man:crontab[1] существуют записи пользователя, то они удаляются. -. Удаляются принадлежащие пользователю задачи man:at[1]. -. Уничтожаются все процессы, принадлежащие пользователю. -. Удаляется запись пользователя из локального файла паролей. -. Если домашний каталог принадлежит пользователю, то каталог удаляется. -. Удаляется принадлежащая пользователю входящая почта из [.filename]#/var/mail#. -. Удаляются все файлы, принадлежащие пользователю, из каталогов с временными файлами, например из [.filename]#/tmp#. -. Наконец, в [.filename]#/etc/group# из всех групп удаляется имя пользователя. Если после этого удаления группа остается пустой и имя группы совпадает с именем пользователя, она удаляется. Это необходимо для удаления пользовательских уникальных групп, создаваемых man:adduser[8]. +. Удаляет пользовательскую информацию в man:crontab[1], если она имеется. +. Удаляет все задания man:at[1], принадлежащие этому пользователю. +. Отправляет сигнал SIGKILL всем процессам, владельцем которых является данный пользователь. +. Удаляет пользователя из локального файла паролей системы. +. Удаляет домашний каталог пользователя (если владельцем этого каталога является данный пользователь), включая обработку символических ссылок в маршруте к реальному домашнему каталогу. +. Удаляет файлы входящей почты, принадлежащие этому пользователю, из `/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] .... # rmuser jru +.... + +Выводимый текст должен быть похож на следующее: + +[.programlisting] +.... Matching password entry: jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh 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]] -==== `chpass` +==== Изменение информации о пользователе -При помощи man:chpass[1] любой пользователь может изменять информацию, связанную с его учетной записью. И только суперпользователю разрешено менять информацию других пользователей. +Любой пользователь может воспользоваться man:chpass[1] для изменения своего используемого по умолчанию командного процессора и персональной информации, связанной с его пользовательской учётной записью. +Суперпользователь может использовать данную утилиту для изменения дополнительной информации об учётной записи любого пользователя. -При запуске без параметров (кроме необязательного имени пользователя), man:chpass[1] вызывает редактор, содержащий информацию о пользователе. Когда пользователь выходит из редактора, база данных пользователей обновляется новой информацией. +При запуске без указания параметров, за исключением необязательного имени пользователя, man:chpass[1] отображает редактор, содержащий информацию пользователя. +Когда пользователь завершает работу с редактором, база данных пользователей обновляется новой информацией. [NOTE] ==== -Если утилита не была запущена с правами суперпользователя, то после выхода из редактора будет запрошен пароль пользователя. +Если утилита запущена не с полномочиями суперпользователя, то после выхода из редактора она запросит пароль пользователя. ==== -В <> суперпользователь, выполнив команду `chpass jru`, просматривает доступные для изменения поля. Если `jru` запустит эту команду, то лишь последние шесть строк будут доступны ему для редактирования. Это показано в <>. +В разделе 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] .... +# chpass +.... + +Выводимый текст должен быть похож на следующее: + +[.programlisting] +.... #Changing user database information for jru. Login: jru Password: * @@ -479,14 +537,12 @@ Office Phone: Home Phone: Other information: .... - ==== [[users-modifying-chpass-ru]] -.Работа с `chpass` с правами обычного пользователя +.Использование `chpass` с полномочиями обычного пользователя [example] ==== - [source,shell] .... #Changing user database information for jru. @@ -497,26 +553,33 @@ Office Phone: Home Phone: Other information: .... - ==== [NOTE] ==== -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, Сетевые серверы]. +Команды man:chfn[1] и man:chsh[1] являются ссылками на man:chpass[1], так же, как и man:ypchpass[1], man:ypchfn[1] и man:ypchsh[1]. +Так как NIS поддерживается автоматически, указание `yp` перед командой не обязательно. +Настройка NIS рассматривается в <>. ==== [[users-passwd]] -==== `passwd` +==== Изменение пароля пользователя -Любой пользователь может изменить собственный пароль при помощи man:passwd[1]. Для предотвращения случайного или несанкционированного изменения, команда запрашивает текущий пароль пользователя перед установкой нового: +Любой пользователь может легко сменить собственный пароль при помощи man:passwd[1]. +Для предотвращения случайных или неавторизованных изменений перед установкой нового пароля эта команду будут запрашивать первоначальный пароль пользователя: -.Изменение пароля +.Изменение собственного пароля [example] ==== - [source,shell] .... % passwd +.... + +Выводимый текст должен быть похож на следующее: + +[.programlisting] +.... Changing local password for jru. Old password: New password: @@ -527,180 +590,167 @@ passwd: done ==== -Суперпользователь может изменить пароль любого пользователя, указав его имя при запуске man:passwd[1]. Утилита, запущенная с правами суперпользователя, не запрашивает текущий пароль пользователя. Благодаря этому возможно устанавливать новые пароли забывчивым пользователям. +Суперпользователь может сменить пароль любого пользователя, указав имя пользователя при запуске man:passwd[1]. +В тех случаях, когда эта утилита работает с полномочиями суперпользователя, она не будет запрашивать текущий пароль пользователя. +Это позвляет менять пароль в случае, когда пользователь не может вспомнить первоначальный пароль. .Изменение пароля другого пользователя суперпользователем [example] ==== - [source,shell] .... # passwd jru +.... + +Выводимый текст должен быть похож на следующее: + +[.programlisting] +.... Changing local password for jru. New password: Retype new password: passwd: updating the database... 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]] -==== `pw` - -man:pw[8] это утилита командной строки для создания, удаления, модифицирования и отображения пользователей и групп. Она функционирует как внешний интерфейс к системным файлам пользователей и групп. У man:pw[8] очень мощный набор параметров командной строки, что делает это программу подходящей для использования в shell скриптах, но новым пользователям она может показаться более сложной, чем другие представленные здесь команды. +==== Создание, удаление, изменение и просмотр пользователей и групп в системе -[[users-limiting]] -=== Ограничение пользователей +Утилита man:pw[8] может создавать, удалять, изменять и отображать пользователей и группы. +Она функционирует как пользовательский интерфейс к системным файлам пользователей и групп. +man:pw[8] обладает очень мощным набором параметров командной строки, что делает её подходящей для использования в скриптах командного процессора, однако новым пользователям она может показаться более сложной, чем другие команды, представленные в этом разделе. -FreeBSD предоставляет администратору несколько способов ограничения количества занимаемых пользователями системных ресурсов. Дисковые квоты, как один из видов ограничения ресурсов, обсуждаются в отдельном разделе, остальные ограничения перечислены далее в тексте. - -Дисковые квоты ограничивают объем дискового пространства, занимаемого пользователями, а также предоставляют способ быстрой проверки занимаемого объема без пересчета его каждый раз. Квоты обсуждаются в crossref:disks[quotas,Квотирование файловых систем]. - -Другие ограничения ресурсов включают способы ограничения использования CPU, памяти и других ресурсов, которые могут потребляться пользователем. Ограничения накладываются с помощью классов учетных записей и обсуждаются в этом разделе. - -Классы учетных записей определяются в [.filename]#/etc/login.conf#, они детально описаны на странице справочника man:login.conf[5]. Каждой учетной записи присвоен класс (`default` по умолчанию), и каждому классу присвоен набор характеристик. Характеристика определяется в виде пары `имя=значение`, где _имя_ это определенный идентификатор, а _значение_ это произвольная строка, обрабатываемая в зависимости от _имени_. Настройка классов и характеристик довольно проста, и также описана в man:login.conf[5]. - -[NOTE] -==== -FreeBSD, как правило, не читает настройки в [.filename]#/etc/login.conf# непосредственно, вместо этого она обращается к файлу базы данных [.filename]#/etc/login.conf.db# для ускорения доступа к данным. Всякий раз после редактирования [.filename]#/etc/login.conf# необходимо обновить [.filename]#/etc/login.conf.db# при помощи следующей команды: - -[source,shell] -.... -# cap_mkdb /etc/login.conf -.... - -==== +[[users-groups]] +=== Управление группами -Ограничения на ресурсы отличаются от обычных характеристик: во-первых, для каждого ограничения существует "мягкое" (текущее) и "жесткое" ограничение. Мягкое ограничение может настраиваться пользователем или приложением, но не может превышать жесткое ограничение. Последнее может быть уменьшено пользователем, а увеличено - лишь суперпользователем. Во-вторых, большинство ограничений ресурсов накладываются на каждый процесс определенного пользователя, а не к пользователю вообще. Эти различия диктуются особенностями обработки ограничений , а не реализацией структуры характеристик учетных записей. +Группа представляет собой список пользователей. +Группа идентифицируется по её имени и GID. +Во FreeBSD для определения того, что имеет право делать процесс, ядро использует UID процесса и список групп, которым он принадлежит. +В большинстве случаев GID пользователя или процесса соотносится с первой группой из списка. -Ниже приведен список наиболее часто используемых ограничений на ресурсы. Остальные, вместе с другими характеристиками, можно найти в man:login.conf[5]. +Соответствия имени группы и GID перечислены в `/etc/group`. +Это обычный текстовый файл с четырьмя полями, разделёнными двоеточиями. +Первое поле соответствует имени группы, второе является зашифрованным паролем, третье содержит GID, а четвёртое является списком членов группы, разделённых запятыми. +За полным описанием синтаксиса обратитесь к man:group[5]. -`coredumpsize`:: -Ограничение на размер файла дампа памяти , генерируемого программой, подчиняющееся другим ограничениям на используемое дисковое пространство, таким как `filesize`, или дисковым квотам. Это ограничение часто используется как менее строгий метод контролирования потребления дискового пространства. Поскольку пользователь не создает файлы дампов памяти самостоятельно, и зачастую не удаляет их, установка этого параметра может предохранить пользователя от выхода за пределы ограничений на дисковое пространство, в случае если большая программа создаст файл аварийного дампа памяти. +Суперпользователь может изменять `/etc/group` при помощи какого-либо текстового редактора, однако предпочтительным способом является редактирование файла с группами при помощи утилиты man:vigr[8], так как она может отловить некоторые распространённые ошибки. -`cputime`:: -Это максимальное количество времени ЦПУ, потребляемого пользователем. Превысившие это время процессы будут уничтожены ядром. -+ +В качестве альтернативы для добавления и редактирования групп можно использовать man:pw[8]. +Например, для добавления группы с именем `teamtwo` и последующей проверки её существования: -[NOTE] +[WARNING] ==== -Это ограничение потребляемого _времени_ ЦПУ, а не процентов использования ЦПУ, которые отображаются в некоторых полях man:top[1] и man:ps[1]. +При использовании группы operator следует соблюдать осторожность, так как при этом могут быть ненамеренно даны полномочия этой группы, близкие к полномочиям суперпользователя, включая, но не ограничиваясь, правами на завершение работы системы и её перезапуск, а также на доступ ко всем объектам в `/dev`. ==== -`filesize`:: -Это максимальный размер файла , которым может владеть пользователь. В отличие от crossref:disks[quotas,дисковых квот], это ограничение применяется к отдельным файлам, а не ко всему набору принадлежащих пользователю файлов. - -`maxproc`:: -Это максимальное число процессов , которые могут быть запущены пользователем. В это число включаются и консольные, и фоновые процессы. Это ограничение не может превышать системный лимит, указываемый через переменную man:sysctl[8] `kern.maxproc`. Установка слишком жестких ограничений может стать помехой работе пользователя: зачастую ему удобно входить в систему с нескольких консолей или использовать каналы. Некоторые задачи, такие как компиляция большой программы, порождают множество процессов. - -`memorylocked`:: -Это максимальный объем памяти , блокировка которого может быть запрошена процессом при помощи man:mlock[2]. Некоторые критически важные для системы программы, такие как man:amd[8], блокируют отведенную процессу память так, что в случае "пробуксовывания" системы (system thrashing) они не усугубляют проблему. - -`memoryuse`:: -Это максимальный объем памяти , которая может быть занята процессом в любой момент времени. Сюда входит основная память и использование подкачки. Это ограничение не снимает все вопросы, связанные с использованием памяти, но для начала это подходящее ограничение. - -`openfiles`:: -Это максимальное количество файлов, которые могут быть открыты процессом. В FreeBSD файлы также используются для представления сокетов и каналов IPC, поэтому не устанавливайте слишком маленькое значение. Ограничение этого параметра, устанавливаемое для всей системы, определяется переменной man:sysctl[8] `kern.maxfiles`. - -`sbsize`:: -Это ограничение на объем сетевой памяти, т.е. mbufs , которую может занять пользователь. В общем, это ограничение может быть использовано для ограничения сетевых взаимодействий. - -`stacksize`:: -Это максимальный размер сегмента стека процесса. Сам по себе этот параметр не может ограничить размер используемой программой памяти, следовательно, его необходимо использовать вместе с другими ограничениями. - -Существуют несколько других аспектов, которые необходимо учитывать при установке ограничений ресурсов. Ниже приведены некоторые общие подсказки, советы и различные комментарии. - -* Процессам, загружаемым при старте системы скриптами [.filename]#/etc/rc# присваивается класс `daemon`. -* Хотя поставляемый с системой [.filename]#/etc/login.conf# - это хороший источник корректных значений для большинства ограничений, сами ограничения могут не подходить для конкретной системы. Установка слишком слабых ограничений может повлечь злоупотребления системой, а установка слишком сильных ограничений может стать помехой производительности. -* Пользователи Xorg возможно должны получить больше ресурсов, чем другие пользователи. Xorg сама по себе потребляет много ресурсов, а также провоцирует пользователей на одновременный запуск большего количества программ. -* Многие ограничения применяются к отдельным процессам, а не к пользователю вообще. Например, установка `openfiles` в 50 означает, что каждый процесс, запущенный пользователем, может открывать до 50 файлов. Общее количество файлов, которые могут быть открыты пользователем, вычисляется как `openfiles`, умноженное на `maxproc`. Это также применимо к потребляемой памяти. - -За дальнейшей информацией по ограничениям на ресурсы, классам учетных записей и характеристикам, обращайтесь к man:cap.mkdb[1], man:getrlimit[2], и man:login.conf[5]. - -[[users-groups]] -=== Группы - -Группа это список пользователей. Группа идентифицируется по имени и GID (Group ID). В FreeBSD для определения прав процесса ядро использует UID процесса, а также список групп, которым он принадлежит. В большинстве случаев, GID пользователя означает первую группу из списка. - -Имена групп связываются с GID в файле [.filename]#/etc/group#. Это текстовый файл с четырьмя разделенными двоеточием полями. Первое поле это имя группы, второе это зашифрованный пароль, третье это GID, а четвертое это разделенный запятыми список членов группы. За более полным описанием синтаксиса обратитесь к man:group[5]. - -Суперпользователь может редактировать [.filename]#/etc/group# при помощи текстового редактора. Как вариант, можно задействовать man:pw[8] для добавления и редактирования групп. Например, для добавления группы, называемой `teamtwo`, и проверки ее существования вы можете использовать: - .Добавление группы с использованием man:pw[8] [example] ==== - [source,shell] .... # pw groupadd teamtwo # pw groupshow teamtwo -teamtwo:*:1100: .... +Выводимый текст должен быть похож на следующее: + +[.programlisting] +.... +teamtwo:*:1100: +.... ==== -В этом примере число `1100` это GID группы `teamtwo`. На данный момент в `teamtwo` нет членов. Следующая команда добавит `jru` в группу `teamtwo`. +В этом примере `1100` является GID группы `teamtwo`. +На данный момент в `teamtwo` нет участников. +Эта команда добавит `jru` в группу `teamtwo` в качестве участника. -.Добавление пользователей в новую группу при помощи man:pw[8] +.Добавление учётных записей пользователей в новую группу при помощи man:pw[8] [example] ==== - [source,shell] .... # pw groupmod teamtwo -M jru # pw groupshow teamtwo -teamtwo:*:1100:jru .... +Выводимый текст должен быть похож на следующее: + +[.programlisting] +.... +teamtwo:*:1100:jru +.... ==== -Аргумент к параметру `-M` это разделенный запятыми список пользователей, которые добавляются в новую (пустую) группу или заменяют существующих членов группы. Что касается пользователя - это членство в группе отличается от первичной группы пользователя, указанного в файле паролей. Это значит, что пользователь не будет показан как член группы при использовании man:pw[8] `groupshow`, но будет отображен при использовании man:id[1] или похожего инструмента. Когда программа man:pw[8] задействована для добавления пользователя в группу, то она работает только с фа йлом [.filename]#/etc/group# и не ищет дополнительную информацию в файле [.filename]#/etc/passwd#. +Аргументом к параметру `-M` является разделённый запятыми список пользователей, которых нужно добавить в новую (пустую) группу или заменить участников существующей группы. +С точки зрения пользователя такое членство в группе отличается от основной группы, указанной в файле паролей (и является дополнительным к ней). +Это значит, что пользователь не будет отображаться как участник группы при использовании параметра `groupshow` с man:pw[8], но будет отображаться при запросе информации с помощью man:id[1] или аналогичного инструмента. +При использовании man:pw[8] для добавления пользователя в группу она работает только с `/etc/group` и не пытается считывать дополнительные сведения из `/etc/passwd`. -.Добавление нового члена группы с использованием man:pw[8] +.Добавление нового участника в группу с помощью man:pw[8] [example] ==== - [source,shell] .... # pw groupmod teamtwo -m db # pw groupshow teamtwo -teamtwo:*:1100:jru,db .... +Выводимый текст должен быть похож на следующее: + +[.programlisting] +.... +teamtwo:*:1100:jru,db +.... ==== -В этом примере аргументом к опции `-m` является разделенный запятыми список пользователей, добавляемых в группу. В отличие от предыдущего примера, пользователи добавляются в группу, а не замещают имеющийся список пользователей группы. +В этом примере аргументом к параметру `-m` является разделённый запятыми список пользователей, которые должны быть добавлены в группу. +В отличие от предыдущего примера, эти пользователи присоединяются к группе, а не замещают существующих в группе пользователей. -.Использование man:id[1] для определения принадлежности к группам +.Использование man:id[1] для определения принадлежности к группе [example] ==== - [source,shell] .... % id jru -uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo) .... +Выводимый текст должен быть похож на следующее: + +[.programlisting] +.... +uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo) +.... ==== В этом примере `jru` является членом групп `jru` и `teamtwo`. -За дальнейшей информацией об этой команде и о формате файла [.filename]#/etc/group# обратитесь к man:pw[8] и man:group[5]. +За дополнительной информацией об этой команде и о формате `/etc/group` обратитесь к man:pw[8] и man:group[5]. [[permissions]] == Права доступа -FreeBSD является прямым потомком BSD UNIX(R) и основывается на некоторых ключевых концепциях UNIX(R). В первую очередь это, конечно, тот факт, что FreeBSD - многопользовательская операционная система. Это означает, что несколько пользователей могут работать одновременно, решая различные задачи и совершенно не мешая друг другу. На системе лежит ответственность за правильное разделение и управление такими ресурсами как память, процессорное время, периферийные устройства и прочее. +Во FreeBSD с каждым файлом и каталогом связан набор прав доступа, для просмотра и изменения которых доступны несколько утилит. +Понимание того, как работают эти права доступа, необходимо для обеспечения того, чтобы пользователи могли получать доступ к файлам, которые им нужны, и не могли некорректно обращаться к файлам, используемым операционной системой или владельцами которых является другие пользователи. -Многопользовательская среда предполагает наличие механизма регулирования прав доступа к любому ресурсу в системе. Существует три типа прав доступа: на чтение, запись и исполнение. Права сгруппированы три по три, соответственно чтение/запись/выполнение для владельца/группы/всех остальных. Численное представление: +В этом разделе описываются традиционные полномочия UNIX(R), используемые во FreeBSD. +Для более тонкого управления доступом в файловой системе обратитесь к разделу crossref:fs-acl[fs-acl,Списки управления доступом]. -[.informaltable] +В UNIX(R) базовые права доступа назначаются с использованием трёх типов доступа: чтение, запись и исполнение. +Эти типы доступа используются для определения доступа к файлу для владельца файла, для группы и для прочих пользователей (всех остальных). +Полномочия на чтение, запись и исполнение могут быть представлены в виде букв `r`, `w` и `x`. +Также они могут быть представлены в виде двоичных чисел, так как каждое полномочие либо включено, либо выключено (`0`). +При представлении в виде числа порядок прочтения всегда имеет вид `rwx`, где `r` имеет значение `4`, `w` имеет значение `2` и `x` равно `1`. + +В Таблице 4.1 сведены возможные цифровые и символьные комбинации. +В столбце "Список файлов каталога" символ `-` используется для отражения отсутствующего права доступа. + +.Права доступа UNIX(R) [cols="1,1,1", frame="none", options="header"] |=== | Значение @@ -740,38 +790,53 @@ FreeBSD является прямым потомком BSD UNIX(R) и основ |`rwx` |=== *** 1496 LINES SKIPPED ***