diff --git a/ru_RU.KOI8-R/books/handbook/mail/chapter.sgml b/ru_RU.KOI8-R/books/handbook/mail/chapter.sgml
index 88b2d65405..c71f14b56f 100644
--- a/ru_RU.KOI8-R/books/handbook/mail/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/mail/chapter.sgml
@@ -1,2341 +1,2341 @@
BillLloydОригинальную версию предоставил JimMockПереписал АлексейДокучаевПеревод на русский язык: ДенисПеплинЭлектронная почтаКраткий обзорemailэлектронная почтаЭлектронная почта называемая также email, является
на сегодняшний день одним из самых популярных средств связи. Эта глава
описывает основы работы с почтовым сервером в &os;, а также введение
в процесс отправки и получения почты в &os;; однако, это не полноценный
справочник и фактически в главу не вошло много важной информации.
Более подробно эта тема рассмотрена во множестве прекрасных книг, список
которых приведен в .После прочтения этой главы вы узнаете:Какие программные компоненты задействованы в отправке и
получении электронной почты.Какие основные файлы настройки
sendmail имеются в FreeBSD.Разницу между удаленными и локальными почтовыми
ящиками.Как запретить спамерам использовать ваш почтовый
сервер для пересылки почты.Как установить и настроить альтернативный агент передачи почты
(Mail Transfer Agent, MTA), заменив им
sendmail.Как разрешить наиболее часто встречающиеся проблемы с почтовым
сервером.Как использовать SMTP с UUCP.Как настроить систему только для отправки почты.Как использовать почту с коммутируемым подключением к
сети.Как настроить SMTP аутентификацию для дополнительной
защиты.Как установить и настроить почтовый агент пользователя
(Mail User Agent, MUA), например
mutt, для отправки и получения
почты.Как загрузить почту с удаленного POP или
IMAP сервера.Как автоматически применять фильтры и правила к входящей
почте.Перед прочтением этой главы вам потребуется:Правильно настроить сетевое подключение
().Правильно настроить DNS для почтового сервера
- ().
+ ().
Знать как устанавливать дополнительное программное обеспечение
сторонних разработчиков ().Использование электронной почтыPOPIMAPDNSВ работе почтовой системы задействованы пять основных частей:
пользовательский почтовый клиент
(Mail User Agent, MUA),
почтовый сервис (даемон)
(Mail Transfer Agent, MTA), сервер DNS, удаленный или локальный почтовый ящик,
и конечно сам почтовый сервер.Пользовательский почтовый клиентОбычно, это программа типа mutt,
pine, elm,
mail, а также программы с графическим
интерфейсом, такие, как balsa или
xfmail, или интегрированные приложения
(например, какой-либо WWW браузер типа Netscape). Все эти программы
общаются с локальным почтовым
сервером, вызывая какой-либо даемон, или напрямую по протоколу
TCP.Почтовый даемонпочтовые даемоныsendmailпочтовые даемоныpostfixпочтовые даемоныqmailпочтовые даемоныexim&os; по умолчанию поставляется с
sendmail, но помимо того поддерживает
множество других даемонов почтового сервера, вот лишь некоторые
из них:exim;postfix;qmail.Почтовый даемон выполняет только две функции: он отвечает за прием
входящей почты и отправку исходящей. Он не
отвечает за выдачу
почты по протоколам POP или
IMAP, и не обеспечивает подключения к локальным
почтовым ящикам mbox или Maildir. Для этих целей
вам может потребоваться дополнительный
даемон.Старые версии sendmail содержат
некоторые серьезные ошибки безопасности, которые могут
привести к получению атакующим локального и/или удаленного
доступа к вашему компьютеру. Убедитесь, что вы работаете
с современной версией, свободной от таких ошибок.
Или установите альтернативный MTA
из коллекции портов &os;.Email и DNSСлужба имен доменов (Domain Name System, DNS) и соответствующий
ей даемон named играют важную роль в доставке
почты. Для доставки почты с вашего сайта другому, даемон почтового
сервера обратится к DNS для определения удаленного хоста, отвечающего
за доставку почты по назначению. Тот же процесс происходит при
доставке почты с удаленного хоста на ваш почтовый сервер.MX recordDNS отвечает за сопоставления имен хостов
IP адресам, как и за хранение информации, предназначенной для
доставки почты, известной как MX записи. Запись MX (Mail
eXchanger) определяет хост или хосты, которые будут получать почту
для определенного домена. Если для вашего имени хоста или домена
нет записи MX, почта будет доставлена непосредственно на ваш хост,
IP адрес которого определен в записи A.Вы можете просмотреть MX записи для любого домена с помощью
команды &man.host.1;, как показано в примере ниже:&prompt.user; host -t mx FreeBSD.org
FreeBSD.org mail is handled (pri=10) by mx1.FreeBSD.orgПолучение почтыemailполучениеПолучение почты для вашего домена выполняет почтовый сервер.
Он сохраняет отправленную в ваш домен почту в формате либо
mbox (это метод по умолчанию),
либо Maildir, в зависимости от настроек.
После сохранения почты ее можно либо прочитать локально, используя
такие приложения как &man.mail.1;, mutt,
или удаленно, по таким протоколам как POP или
IMAP. Это
означает, что для локального чтения почты вам не потребуется
устанавливать сервер POP или
IMAP.Доступ к удаленным почтовым ящикам по протоколам
POP и IMAPPOPIMAPДля удаленного доступа к почтовым ящикам вам потребуется
доступ к POP или IMAP
серверу.
Хотя удаленный доступ обеспечивают оба протокола
POP и IMAP, последний
предоставляет множество дополнительных возможностей, вот некоторые
из них:IMAP может как хранить сообщения на
удаленном сервере, так и забирать их.IMAP поддерживает одновременные
обновления.IMAP может быть очень полезен для
низкоскоростных соединений, поскольку позволяет пользователям
получить структуру сообщений без их загрузки; он также может
использоваться для выполнения таких задач как поиск на сервере,
для минимизации объема передаваемых между клиентом и сервером
данных.Для установки POP или
IMAP сервера необходимо выполнить следующие
действия:Выберите IMAP или
POP сервер, который подходит вам наилучшим
образом. Следующие POP и
IMAP серверы хорошо известны и могут быть
приведены в качестве примера:qpopper;teapop;imap-uw;courier-imap;Установите POP или
IMAP даемон, выбранный из коллекции
портов.Если потребуется, настройте
/etc/inetd.conf
для запуска POP или
IMAP сервера.Необходимо отметить, что и POP и
IMAP серверы передают информацию, включая
имя пользователя и пароль, в незашифрованном виде. Это означает,
что если вы хотите защитить передачу информации по этим
протоколам, потребуется использовать тунеллирование сессий через
&man.ssh.1;. Тунеллирование соединений описано в
.Доступ к локальным почтовым ящикамДоступ к почтовым ящикам может быть осуществлен непосредственно
путем использования MUA на сервере, где
эти ящики расположены. Это можно сделать используя приложения
вроде mutt или
&man.mail.1;.Почтовый хостпочтовый хостПочтовый хост это сервер, который отвечает за отправку и получение
почты для вашего компьютера, и возможно, для всей вашей сети.ChristopherShumwayПредоставил Настройка sendmailsendmailВ FreeBSD по умолчанию программой передачи почты (Mail Transfer
Agent, MTA) является &man.sendmail.8;. Работа
sendmail заключается в приеме почты от
почтовых программ пользователей (Mail User Agents,
MUA) и отправке ее на соответствующий адрес,
в соответствии с имеющимися настройками.
sendmail может также принимать входящие
соединения по сети и доставлять почту в локальные почтовые ящики
или перенаправлять их другой программе.sendmail использует следующие файлы
настройки:/etc/mail/access/etc/mail/aliases/etc/mail/local-host-names/etc/mail/mailer.conf/etc/mail/mailertable/etc/mail/sendmail.cf/etc/mail/virtusertableИмя файлаНазначение/etc/mail/accessФайл базы данных доступа
sendmail/etc/mail/aliasesСинонимы почтовых ящиков/etc/mail/local-host-namesСписок хостов, для которых
sendmail принимает почту/etc/mail/mailer.confНастройки почтовой программы/etc/mail/mailertableТаблица доставки почтовой программы/etc/mail/sendmail.cfОсновной файл настройки
sendmail/etc/mail/virtusertableТаблицы виртуальных пользователей и доменов/etc/mail/accessБаза данных доступа определяет список хостов или IP адресов,
имеющих доступ к локальному почтовому серверу, а также тип
предоставляемого доступа. Хосты могут быть перечислены как
, ,
или просто переданы процедуре обработки ошибок
sendmail с заданным сообщением об ошибке.
Хостам, перечисленным с параметром по умолчанию ,
разрешено отправлять почты на этот хост, если адрес назначения почты
принадлежит локальной машине. Все почтовые соединения от хостов,
перечисленных с параметром , отбрасываются.
Для хостов, перечисленных с параметром ,
разрешена передача через этот сервер почты с любым адресом
назначения.Настройка базы данных доступа
sendmailcyberspammer.com 550 We don't accept mail from spammers
FREE.STEALTH.MAILER@ 550 We don't accept mail from spammers
another.source.of.spam REJECT
okay.cyberspammer.com OK
128.32 RELAYВ этом примере приведены пять записей. К отправителям, чей адрес
соответствует записи в левой части таблицы, применяется правило
записанное в правой части таблицы. В первых двух примерах
код ошибки будет передан процедуре обработке ошибок
sendmail. В этом случае на удаленном хосте
будет получено соответствующее сообщение. В следующем примере почта
отбрасывается почта от определенного хоста,
another.source.of.spam. В четвертом примере
разрешается прием почты от хоста okay.cyberspammer.com, имя которого более точно
совпадает с этой записью, чем с cyberspammer.com в примере выше. При более
точном совпадении правила перезаписываются. В последнем примере
разрешается пересылка почты от хостов с IP адресами, начинающимися
с 128.32. Эти хосты смогут отправлять почту через
этот почтовый сервер для других почтовых серверов.После изменения этого файла для обновления базы данных
вам потребуется запустить make в каталоге
/etc/mail/./etc/mail/aliasesБаза данных синонимов содержит список виртуальных почтовых
ящиков, принадлежащих другим пользователям, файлам, программам, или
другим синонимам. Вот несколько примеров, которые могут быть
использованы для /etc/mail/aliases:Mail Aliasesroot: localuser
ftp-bugs: joe,eric,paul
bit.bucket: /dev/null
procmail: "|/usr/local/bin/procmail"Формат файла прост; имя почтового ящика слева от двоеточия
сопоставляется назначению(ям) справа. В первом примере
производится простое сопоставление почтового ящика
root почтовому ящику
localuser, для которого затем опять будет
произведен поиск в базе данных синонимов. Если совпадений не
обнаружится, сообщение будет доставлено локальному пользователю
localuser. В следующем примере приведен
список рассылки. Почта на адрес ftp-bugs
рассылается на три локальных почтовых ящика: joe,
eric и paul. Обратите
внимание, что удаленный почтовый ящик может быть задан в виде
user@example.com. В следующем примере
показана запись почты в файл, в данном случае
/dev/null. И в последнем примере показано
отправление почты программе, в данном случае почтовое сообщение
переправляется через канал &unix; на стандартный вход
/usr/local/bin/procmail.После обновления этого файла вам потребуется запустить
make в каталоге /etc/mail/
для обновления базы данных./etc/mail/local-host-namesВ этом файле находится список имен хостов, принимаемых
программой &man.sendmail.8; в качестве локальных. Поместите в
этот файл любые домены или хосты, для которых
sendmail должен принимать почту.
Например, если этот почтовый сервер должен принимать почту для
домена example.com и хоста
mail.example.com, его файл
local-host-names может выглядеть примерно
так:example.com
mail.example.comПосле обновления этого файла необходимо перезапустить
&man.sendmail.8;, чтобы он смог перечитать изменения./etc/mail/sendmail.cfОсновной файл настройки sendmail,
sendmail.cf управляет общим поведением
sendmail, включая все, от перезаписи
почтовых адресов до отправки удаленным серверам сообщений об
отказе от пересылки почты. Конечно, файл настройки с таким
многообразием возможностей очень сложен и подробное его описание
выходит за рамки данного раздела. К счастью, для стандартных
почтовых серверов изменять этот файл придется не часто.Основной файл настройки sendmail
может быть собран из макроса &man.m4.1;, определяющего возможности
и поведение sendmail. Подробнее
этот процесс описан в файле
/usr/src/contrib/sendmail/cf/README.Для применения изменений после правки файла необходимо
перезапустить sendmail./etc/mail/virtusertableФайл virtusertable сопоставляет виртуальные
почтовые домены и почтовые ящики реальным почтовым ящикам. Эти
почтовые ящики могут быть локальными, удаленными, синонимами,
определенными в /etc/mail/aliases, или
файлами.Пример таблицы виртуального доменаroot@example.com root
postmaster@example.com postmaster@noc.example.net
@example.com joeВ примере выше мы видим сопоставление адресов для домена
example.com. Почта
обрабатывается по первому совпадению с записью в этом файле.
Первая запись сопоставляет адрес root@example.com
локальному почтовому ящику root.
Вторая запись сопоставляет postmaster@example.com
локальному почтовому ящику postmaster
на хосте noc.example.net. Наконец,
до этого момента адрес в домене example.com не совпал ни с одним из
предыдущих, будет применено последнее сопоставление, в которому
соответствует всякое другое почтовое сообщение, отправленное на любой
адрес в example.com. Это сообщение
будет доставлено в локальный почтовый ящик
joe.AndrewBoothmanНаписал GregoryNeil ShapiroИнформация получена из писем, написанных Установка другой почтовой программыemailзамена mtaКак уже упоминалось, FreeBSD поставляется с MTA (Mail Transfer Agent)
sendmail. Следовательно, по умолчанию
именно эта программа отвечает за вашу исходящую и входящую
почту.Однако, по различным причинам некоторые системные администраторы
заменяют системный MTA. Эти причины варьируются от простого желания
попробовать другой MTA до потребности в определенных возможностях
пакета, основанного на другой почтовой программе. К счастью, вне
зависимости от причины, в FreeBSD такая замена выполняется
просто.Установка нового MTAВам предоставлен широкий выбор MTA. Начните с поиска в
коллекции портов FreeBSD,
где их немало. Конечно, вы можете использовать любой MTA
по желанию, взятый откуда угодно, если только сможете
запустить его под FreeBSD.Начните с установки нового MTA. После установки у вас будет
возможность решить, действительно ли он подходит вашем нуждам,
а также настроить новое программное обеспечение перед тем, как
заменить им sendmail. При установке
новой программы убедитесь, что она не пытается перезаписать
системные файлы, такие как /usr/bin/sendmail.
Иначе ваша новая почтовая программа фактически начнет работать
до того, как вы ее настроите.Обратитесь к документации на выбранный MTA
за информацией по его настройке.Отключение sendmailПроцедура, используемая для запуска
sendmail, значительно изменилась между
релизами 4.5-RELEASE и 4.6-RELEASE. Поэтому процедура, используемая
для его отключения, немного отличается.FreeBSD 4.5-STABLE до 2002/4/4 и раньше
(включая 4.5-RELEASE и более ранние)Добавьте:sendmail_enable="NO"в /etc/rc.conf. Это отключит
сервис входящей почты sendmail,
но если /etc/mail/mailer.conf (см. ниже)
не изменен, sendmail все еще
будет использоваться для отправки почты.FreeBSD 4.5-STABLE после 2002/4/4
(включая 4.6-RELEASE и более поздние)Для полного отключения
sendmail используйтеsendmail_enable="NONE"в /etc/rc.conf.Если вы отключите сервис исходящей почты
sendmail таким способом, необходимо
заменить его полностью работоспособной альтернативной системой
доставки почты. Если вы не сделаете этого, системные программы,
такие как &man.periodic.8;, не смогут отправлять сообщения
по электронной почте как обычно. Многие программы в вашей
системе могут требовать наличия функционирующей
sendmail-совместимой системы.
Если приложения будут продолжать использовать программу
sendmail, пытаясь отправить почту
после отключения почтовой системы, почта может попасть в
неактивную очередь sendmail и никогда
не будет доставлена.Если вы хотите отключить только сервис входящей почты
sendmail, установитеsendmail_enable="NO"в /etc/rc.conf. Дополнительная информация
о параметрах запуска sendmail
доступна на странице справочника &man.rc.sendmail.8;.Запуск нового MTA при загрузкеВы можете выбрать один из двух методов для запуска нового MTA
при загрузке, опять же в зависимости от используемой версии
FreeBSD.FreeBSD 4.5-STABLE до 2002/4/11
(включая 4.5-RELEASE и более ранние)Добавьте в каталог
/usr/local/etc/rc.d/, скрипт с расширением
.sh и с правами выполнения пользователем
root. Скрипт должен принимать параметры
start и stop.
Во время запуска системы он будет запущен командой/usr/local/etc/rc.d/supermailer.sh startкоторая также может использоваться для запуска сервера вручную
Во время завершения работы системы, системные скрипты используют
параметр stop, выполнив команду/usr/local/etc/rc.d/supermailer.sh stopкоторая также может использоваться для остановки почтового сервера
при работающей системе.FreeBSD 4.5-STABLE после 2002/4/11
(включая 4.6-RELEASE и более поздние)С более поздними версиями FreeBSD, вы можете использовать
метод, описанный выше, или добавить строкуmta_start_script="filename"в /etc/rc.conf, где
filename это имя скрипта, который вы
хотите выполнить при загрузке для запуска MTA.Замещение sendmail как
почтовой программы по умолчаниюПрограмма sendmail настолько
распространена в качестве стандартной программы для систем &unix;,
что многие программы считают, что она уже установлена и настроена.
По этой причине многие альтернативные MTA предоставляют собственные
совместимые реализации интерфейса командной строки
sendmail; это облегчает их использование
в качестве прозрачной замены
sendmail.Поэтому если вы используете альтернативную почтовую программу,
потребуется убедиться, что когда программное обеспечение
пытается выполнить стандартные исполняемые файлы
sendmail, такие как
/usr/bin/sendmail, на самом деле выполняются
программы вновь установленной почтовой системы. К счастью,
FreeBSD предоставляет систему, называемую &man.mailwrapper.8;,
которая выполняет эту работу за вас.Когда установлен sendmail,
файл /etc/mail/mailer.conf выглядит
примерно так:sendmail /usr/libexec/sendmail/sendmail
send-mail /usr/libexec/sendmail/sendmail
mailq /usr/libexec/sendmail/sendmail
newaliases /usr/libexec/sendmail/sendmail
hoststat /usr/libexec/sendmail/sendmail
purgestat /usr/libexec/sendmail/sendmailЭто означает, что когда выполняется какая-то из этих стандартных
программ (например сам sendmail), система на
самом деле вызывает копию mailwrapper, называемую
sendmail, которая обращается к
mailer.conf и выполняет вместо этого
/usr/libexec/sendmail/sendmail.
Такая схема делает простой замену программ, которые на самом деле
выполняются, когда вызываются стандартные функции
sendmail.Поэтому если вы хотите выполнять
/usr/local/supermailer/bin/sendmail-compat
вместо sendmail, отредактируйте
/etc/mail/mailer.conf так:sendmail /usr/local/supermailer/bin/sendmail-compat
send-mail /usr/local/supermailer/bin/sendmail-compat
mailq /usr/local/supermailer/bin/mailq-compat
newaliases /usr/local/supermailer/bin/newaliases-compat
hoststat /usr/local/supermailer/bin/hoststat-compat
purgestat /usr/local/supermailer/bin/purgestat-compatЗапуск новой почтовой программыКак только вы все настроили, потребуется или уничтожить
процесс sendmail, который уже не
нужен и запустить новую почтовую программу, или просто перегрузить
систему. Перезагрузка также даст вам возможность проверить,
правильно ли настроена система для автоматического запуска
MTA при загрузке.Поиск и устранение неисправностейemailустранение неисправностейПочему я должен использовать FQDN для хостов вне моей подсети?Вы, видимо, обнаружили, что хост, к которому вы обратились,
оказался на самом деле в другом домене; например, если вы
находитесь в домене foo.bar.edu и
хотите обратиться к хосту mumble в домене bar.edu, то должны указать его полное
доменное имя, mumble.bar.edu, а не
просто mumble.BINDТрадиционно, программа разрешения имен BSD BIND позволяла это
делать. Однако, текущая версия BIND,
поставляемая с FreeBSD, больше не добавляет имена доменов,
отличающихся от того, в котором вы находитесь, для не полностью
указанных имен хостов. То есть, имя mumble будет
опознан как mumble.foo.bar.edu или
будет искаться в корневом домене.Это отличается от предыдущего поведения, при котором поиск
продолжался в доменах mumble.bar.edu и mumble.edu. Если вам интересны причины
объявления такого поведения плохой практикой и даже ошибкой в
безопасности, обратитесь к RFC 1535.Хорошим решением будет поместить строку
search foo.bar.edu bar.edu
вместо ранее используемой:
domain foo.bar.edu
в файл /etc/resolv.conf. Однако
удостоверьтесь, что порядок поиска не нарушает границ
полномочий между локальным и внешним администрированием, в
терминологии RFC 1535.MX recordsendmail выдает ошибку
mail loops back to myselfВ FAQ по sendmail дан следующий ответ:Я получаю такие сообщения об ошибке:
553 MX list for domain.net points back to relay.domain.net
554 <user@domain.net>... Local configuration error
Как можно решить эту проблему?
Согласно записям MX, почта для домена domain.net перенаправляется на хост
relay.domain.net, однако последний не распознается как
domain.net. Добавьте domain.net в файл
/etc/mail/local-host-names
[известный как /etc/sendmail.cw до версии 8.10]
(если вы используете
FETURE(use_cw_file)) или добавьте Cw domain.net в файл
/etc/mail/sendmail.cf.FAQ по sendmail можно найти на
и рекомендуется
прочесть его при желании произвести некоторые
усовершенствования настроек почтовой системы.PPPКак организовать работу почтового сервера при коммутируемом соединении
с Интернет?Вы хотите подключить к интернет компьютер с FreeBSD, работающий
в локальной сети. Компьютер с FreeBSD будет почтовым шлюзом
для локальной сети. PPP соединение не выделенное.UUCPMX recordСуществует как минимум два пути, чтобы сделать это. Один способ
это использование UUCP.Другой способ это использование постоянно работающего интернет
сервера для обеспечения вторичного MX сервиса вашего домена.
Например, домен вашей компании example.com, и провайдер интернет
настроил example.net
для обеспечения вторичного MX сервиса:
example.com. MX 10 example.com.
MX 20 example.net.Только один хост должен быть указан в качестве последнего
получателя (добавьте запись Cw example.com в файл
/etc/mail/sendmail.cf на машине
example.com).Когда программа sendmail (со стороны
отправителя) захочет доставить почту, она
попытается соединиться с вашим хостом (example.com) через модемное подключение.
Скорее всего, ей это не удастся (вы,
вероятнее всего, не будете подключены к интернет).
Программа sendmail
автоматически перейдет ко вторичному MX серверу, т.е. вашему провайдеру
(example.net).
Вторичный MX сервер будет периодически пытаться соединиться с
вашим хостом и доставить почту на основной сервер MX
(example.com).Вы можете воспользоваться следующим сценарием, чтобы забирать
почту каждый раз, когда вы входите в систему:#!/bin/sh
# Put me in /usr/local/bin/pppmyisp
( sleep 60 ; /usr/sbin/sendmail -q ) &
/usr/sbin/ppp -direct pppmyispЕсли же вы хотите написать отдельный пользовательский скрипт,
лучше воспользоваться командой sendmail
-qRexample.com вместо вышеприведенного сценария, так как в
этом случае вся почта в очереди для хоста
example.com будет обработана
немедленно.Рассмотрим эту ситуацию подробнее:Вот пример сообщения из &a.isp.name;.> Мы предоставляем вторичный MX для наших клиентов. Вы соединяетесь
> с нашим сервером несколько раз в день, чтобы забрать почту для вашего
> первичного (главного) MX (мы не соединяемся с ним каждый раз, когда
> приходит новая почта для его доменов). Далее, sendmail отправляет
> почту, находящуюся в очереди каждые 30 минут, и клиент должен быть
> подключен к Интернет в течении 30 минут, чтобы удостовериться, что
> вся почта ушла на основной MX-сервер.
>
> Может быть, есть какая-либо команда, которая заставит sendmail
> немедленно отправить все почту, находящуюся в очереди? Естественно,
> пользователи не обладают какими-либо повышенными привилегиями на
> нашем сервере.
В секции privacy flags файла
sendmail.cf, определяется опция
Уберите restrictqrun, чтобы разрешить рядовым
пользователям инициировать работу с очередью. Вам также может понадобиться
изменить порядок MX-серверов. Так, если вы предоставляете первый (основной)
MX-сервер для ваши пользователей, мы указываем:
# If we are the best MX for a host, try directly instead of generating
# local config error.
OwTrue
Таким образом, удаленный хост будет доставлять почту непосредственно к вам,
не пытаясь установить соединение с клиентом. Затем уже вы, в свою очередь,
отсылаете ее клиенту. Удостоверьтесь, что в DNS есть записи про
customer.com и hostname.customer.com. Просто
добавьте запись A в DNS для customer.com.Почему я продолжаю получать ошибки Relaying
Denied при отправки почты через другие
хосты?В установке FreeBSD по умолчанию,
sendmail настроен для отправки
почты только от хоста, на котором он работает. Например,
если доступен POP сервер, пользователи
смогут проверять почту из школы, с работы или других
удаленных точек, но не смогут отправлять письма. Обычно,
через некоторое время после попытки будет отправлено письмо
от MAILER-DAEMON с сообщением
об ошибке 5.7 Relaying Denied.Есть несколько путей разрешения этой ситуации. Самый прямой
путь это использование адреса вашего провайдера в файле
relay-domains, расположенном в
/etc/mail/relay-domains. Быстрый способ
сделать это:&prompt.root; echo "your.isp.example.com" > /etc/mail/relay-domainsПосле создания или редактирования этого файла вы должны
перезапустить sendmail. Это отлично
работает, если вы администратор сервера и не хотите отправлять
почту локально, или хотите воспользоваться почтовым
клиентом/системой на другом компьютере или даже через другого
провайдера. Это также очень полезно, если у вас настроены одна
или две почтовые записи. Если необходимо добавить несколько
адресов, вы можете просто открыть этот файл в текстовом редакторе и
добавить домены, по одному на строку:your.isp.example.com
other.isp.example.net
users-isp.example.org
www.example.orgТеперь будет отправляться любая почта, посылаемая через вашу
систему любым хостом из этого списка (предоставляемого
пользователем, имеющим учетную запись в вашей системе).
Это отличный способ разрешить пользователям отправлять почту
через вашу систему удаленно, одновременно он блокирует отправку
спама.Расширенное руководствоВ следующем разделе рассматриваются более сложные темы, такие как
настройка почты и включение почтовой системы для всего домена.Базовая конфигурацияemailнастройкаИзначально, вы можете отправлять почту во внешний
мир если правильно составлен файл
/etc/resolv.conf или запущен свой сервер
имен. Если вы хотите, чтобы почта, предназначенная для хоста в
вашем домене, доставлялась MTA (например,
sendmail) на вашем хосте FreeBSD, есть два
пути:Запустите свой собственный сервер DNS, тем самым организовав
собственный домен, например, FreeBSD.orgПолучайте почту для вашего хоста непосредственно. Это
работает при доставке почты непосредственно на DNS имя вашей
машины. Например, example.FreeBSD.org.SMTPНезависимо от выбранного из предложенных выше вариантов, для
доставки почты непосредственно на ваш хост у него должен быть
постоянный IP адрес (а не динамический,
как у большинства PPP соединений). Если вы находитесь за
брандмауэром, то последний должен пропускать SMTP-пакеты. Если
вы хотите, чтобы почта приходила непосредственно на ваш
хост, необходимо убедиться в одном из двух:MX recordУбедитесь, что запись (с наименьшим номером) MX в
DNS соответствует IP адресу
вашего хоста.Убедитесь, что в DNS для вашего хоста вообще отсутствует
MX-запись.Выполнение любого из перечисленных условий обеспечит доставку
почты для вашего хоста.Попробуйте это:&prompt.root; hostname
example.FreeBSD.org
&prompt.root; host example.FreeBSD.org
example.FreeBSD.org has address 204.216.27.XXЕсли вы это видите, то можно без проблем посылать почту на
yourlogin@example.FreeBSD.org (предполагается,
что sendmail на example.FreeBSD.org работает правильно).Однако, если вы видите это:&prompt.root; host example.FreeBSD.org
example.FreeBSD.org has address 204.216.27.XX
example.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.orgто вся почта, посланная на example.FreeBSD.org будет собираться на
hub (для того же пользователя), вместо того, чтобы
быть отосланной непосредственно на ваш хост.Эта информация обрабатывается вашим DNS сервером. Соответствующая
запись DNS, указывающая, через какой хост будет проходить ваша
почта, называется MX (Mail
eXchanger). Если для хоста отсутствует такая
запись, почта будет приходить прямо на этот хост.Допустим, что запись MX для хоста freefall.FreeBSD.org в какой-то момент
выглядела так:freefall MX 30 mail.crl.net
freefall MX 40 agora.rdrop.com
freefall MX 10 freefall.FreeBSD.org
freefall MX 20 who.cdrom.comВы видите, что для хоста freefall существуют
несколько MX-записей. Запись с наименьшим номером соответствует
хосту, получающему почту непосредственно, если он доступен; если
он недоступен по каким-то причинам, другие сервера (иногда называемые
(резервными MX) временно получают почту, и хранят ее
пока не станут доступны хосты с меньшими номерами, в конечном итоге
отправляя почту на эти хосты.Чтобы альтернативные MX-хосты использовались наиболее
эффективно, они должны быть независимо подключены к Интернет. Ваш
провайдер (или дружественный сайт) скорее всего без проблем сможет
оказать подобные услуги.Почта для вашего доменаДля настройки почтового хоста (почтовый
сервер) вам потребуется, чтобы почта, направляемая различным рабочим
станциям, пересылалась этому хосту. Обычно вам необходима
доставка всей почты для любого хоста вашего домена (в данном случае
*.FreeBSD.org) на почтовый сервер, чтобы
пользователи могли получать свою почту на с этого сервера.DNSЧтобы облегчить себе (и другим) жизнь, создайте на обеих машинах
учетные записи с одинаковыми именами пользователей, например, с помощью
команды &man.adduser.8;.Сервер, который вы будете использовать в качестве почтового,
должен быть объявлен таковым для каждой машины в домене. Вот
фрагмент примерной конфигурации:example.FreeBSD.org A 204.216.27.XX ; Рабочая станция
MX 10 hub.FreeBSD.org ; Почтовый шлюзТаким образом, вся корреспонденция, адресованная рабочей
станции, будет обрабатываться вашим почтовым сервером, независимо от
того, что указано в A-записи.Все это можно реализовать только в том случае, если вы
используете сервер DNS. Если вы по каким-либо причинам не имеете
возможности установить свой собственный сервер имен, необходимо
договориться с провайдером или теми, кто поддерживает ваш
DNS.Если вы хотите поддерживать несколько виртуальных почтовых
серверов, может пригодиться следующая информация. Допустим, что
ваш клиент зарезервировал домен, например, customer1.org, и вам требуется, чтобы
почта, предназначенная для customer1.org приходила на ваш хост,
например, mail.myhost.com. В таком
случае, DNS должен выглядеть так:customer1.org MX 10 mail.myhost.comЗаметьте, что если вам требуется только получать почту для
домена, соответствующая A-запись не
нужна.Помните, что если вы попытаетесь каким-либо образом обратиться
к хосту customer1.org, у вас
вряд ли что-либо получится, если нет A-записи для этого
хоста.Последнее, что вы должны сделать – это сказать программе
sendmail, для каких доменов и/или хостов
она должна принимать почту. Это можно сделать несколькими
способами:Добавьте названия этих хостов в файл
/etc/mail/local-host-names, если вы используете
FEATURE(use_cw_file). Если у вас
sendmail
версии ниже 8.10, необходимо отредактировать файл
/etc/sendmail.cw.Добавьте строку Cwyour.host.com в файл
/etc/sendmail.cf или
/etc/mail/sendmail.cf (если у вас
sendmail
версии 8.10 или более поздней).SMTP через UUCPНастройка поставляемого с FreeBSD sendmail
предназначена для сайтов, подключенных к интернет непосредственно.
Сайты, осуществляющие обмен почтой через UUCP, должны использовать
другой файл настройки sendmail.Редактирование /etc/mail/sendmail.cf вручную
это сложная задача. sendmail версии 8
генерирует файлы настройки через препроцессор &man.m4.1;, реально
настройка выполняется на более высоком уровне абстракции.
Файлы настройки &man.m4.1; можно найти в
/usr/src/usr.sbin/sendmail/cf.Если вы не установили в систему все исходные тексты, пакет настройки
sendmail можно найти в отдельном архиве
исходных текстов. Если CDROM с исходными текстами
FreeBSD смонтирован, выполните:&prompt.root; cd /cdrom/src
&prompt.root; cat scontrib.?? | tar xzf - -C /usr/src/contrib/sendmailЭта установка займет всего несколько сотен килобайт. Файл
README в каталоге cf
содержит введение в основы настройки &man.m4.1;.Лучшим способом настройки поддержки передачи по UUCP является
использование возможности mailertable.
При этом создается база данных, которая помогает
sendmail решать вопросы маршрутизации.Во-первых, создайте файл .mc. В каталоге
/usr/src/usr.sbin/sendmail/cf/cf находятся
несколько примеров. Возьмем для примера имя файла
foo.mc. Все, что потребуется для преобразования
его в sendmail.cf, это:&prompt.root; cd /usr/src/usr.sbin/sendmail/cf/cf
&prompt.root; make foo.cf
&prompt.root; cp foo.cf /etc/mail/sendmail.cfТипичный .mc файл может выглядеть примерно
так:VERSIONID(`Your version number') OSTYPE(bsd4.4)
FEATURE(accept_unresolvable_domains)
FEATURE(nocanonify)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
define(`UUCP_RELAY', your.uucp.relay)
define(`UUCP_MAX_SIZE', 200000)
define(`confDONT_PROBE_INTERFACES')
MAILER(local)
MAILER(smtp)
MAILER(uucp)
Cw your.alias.host.name
Cw youruucpnodename.UUCPСтроки, содержащие
accept_unresolvable_domains,
nocanonify, и
confDONT_PROBE_INTERFACES, предотвратят использование
DNS для доставки почты. Пункт UUCP_RELAY
необходим для поддержки доставки по UUCP. Просто поместите сюда
имя хоста в интернет, способного работать с .UUCP адресами
псевдо-доменов; скорее всего, вы введете сюда основной сервер
пересылки почты провайдера.Как только вы сделаете это, потребуется файл
/etc/mail/mailertable. Если вы используете
для всей почты только одно внешнее соединение, подойдет следующий
файл:#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
. uucp-dom:your.uucp.relayБолее сложный пример может выглядеть так:#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
#
horus.interface-business.de uucp-dom:horus
.interface-business.de uucp-dom:if-bus
interface-business.de uucp-dom:if-bus
.heep.sax.de smtp8:%1
horus.UUCP uucp-dom:horus
if-bus.UUCP uucp-dom:if-bus
. uucp-dom:В первых трех строках обрабатываются специальные случаи, когда
почта для домена должна отправляться не на маршрут по умолчанию,
а на ближайшее соединение UUCP для сокращения пути доставки.
Следующая строка обрабатывает почту, которая может быть доставлена
по SMTP для локального Ethernet домена. Наконец, определены
маршруты UUCP в нотации псевдо-доменов .UUCP, для включения
перезаписи правил по умолчанию правилом
uucp-neighbor
!recipient.
Последняя строка всегда содержит одиночную точку, означающую
все остальное, с отправкой через UUCP, являющимся
универсальным почтовым шлюзом. Все имена узлов после ключевого слова
uucp-dom: должны представлять существующие маршруты
UUCP, проверить их можно с помощью команды
uuname.Напоминаем, что этот файл должен быть преобразован в базу данных
DBM перед использованием. Командную строку для этой задачи лучше всего
поместить в качестве комментария в верхней части файла
mailertable. Всегда выполняйте эту команду после
правки файла mailertable.И наконец: если вы не уверены, что некоторые отдельные почтовые
маршруты будут работать, запомните параметр
sendmail . С этим
параметром sendmail запускается в
режиме тестирования адреса; просто введите
3,0 и адрес, который вы хотите протестировать.
В последней строке появится сообщение об используемом внутреннем
почтовом агенте, хосте назначения, с которым вызывается этот агент,
и (возможно транслированный) адрес. Выход из этого режима
происходит при нажатии CtrlD.&prompt.user; sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
>3,0 foo@example.com
canonify input: foo @ example . com
...
parse returns: $# uucp-dom $@ your.uucp.relay $: foo < @ example . com . >
>^DBillMoranПредоставил Настройка почты только для отправкиСуществует множество случаев, когда может потребоваться только
отправка почты через почтовый сервер. Вот отдельные примеры:У вас настольный компьютер, но вы хотите использовать такие
программы как &man.send-pr.1;. Для пересылки почты вам потребуется
использовать почтовый сервер провайдера.Ваш компьютер является сервером, где почта не хранится локально,
необходима только переправка всей почты через внешний почтовый
сервер.Практически любой MTA способен работать и в
этих условиях. К сожалению, может быть очень сложно правильно настроить
полноценный MTA для работы только с исходящей
почтой. Такие программы, как sendmail
и postfix слишком избыточны для этих
целей.К тому же, если вы используете обычные средства доступа в
интернет, условий для запуска почтового сервера может
быть недостаточно.Простейшим способом удовлетворить имеющиеся потребности может быть
установка порта mail/ssmtp.
Выполните под root следующие команды:&prompt.root; cd /usr/ports/mail/ssmtp
&prompt.root; make install replace cleanПосле установки потребуется настроить
mail/ssmtp с помощью файла из
четырех строк, расположенного в
/usr/local/etc/ssmtp/ssmtp.conf:root=yourrealemail@example.com
mailhub=mail.example.com
rewriteDomain=example.com
hostname=_HOSTNAME_Убедитесь, что используете существующий почтовый адрес для
root. Введите сервер вашего провайдера для
пересылки исходящей почты вместо mail.example.com (некоторые провайдеры
называют его сервером исходящей почты или
SMTP сервером).Убедитесь, sendmail выключен путем
добавления строки sendmail_enable="NONE"
в /etc/rc.conf.У пакета mail/ssmtp имеются
и другие параметры. Обратитесь к файлу с примером настройки
в /usr/local/etc/ssmtp или к странице справочника
ssmtp за примерами и дополнительной
информацией.Установка ssmtp таким способом
позволит правильно работать любым программам на вашем компьютере,
которым требуется отправка почты, но не нарушит политику вашего
провайдера и не позволит вашему компьютеру быть использованным
спамерами.Использование почты с коммутируемым соединениемЕсли у вас есть статический IP, настройки по умолчанию менять
не потребуется. Установите имя хоста в соответствии с присвоенным
именем интернет и sendmail будет делать
свою работу.Если у вас динамический IP адрес и используется коммутируемое
PPP соединение с интернет, у вас возможно уже есть почтовый ящик
на сервере провайдера. Предположим, что домен провайдера называется
example.net, и что ваше
имя пользователя user, ваш компьютер называется
bsd.home, и провайдер сообщил вам, что
возможно использование relay.example.net в качестве сервера для пересылки
почты.Для получения почты из почтового ящика необходима установка
соответствующей программы. Хорошим выбором является
утилита fetchmail, она поддерживает
множество различных протоколов. Эта программа доступна в виде
пакета или из коллекции портов (mail/fetchmail). Обычно провайдер
предоставляет доступ по протоколу POP. Если
вы работаете с пользовательским PPP, то можете
автоматически забирать почту после установления соединения с
интернет с помощью следующей записи в
/etc/ppp/ppp.linkup:MYADDR:
!bg su user -c fetchmailЕсли вы используете sendmail (как
показано ниже) для доставки почты к не-локальным учетным записям,
вам возможно потребуется обработка почтовой очереди
sendmail сразу после установки
соединения с интернет. Для выполнения этой работы поместите
в /etc/ppp/ppp.linkup следующую команду
сразу после fetchmail: !bg su user -c "sendmail -q"Предполагается, что учетная запись для
user существует на bsd.home. В домашнем каталоге
user на bsd.home, создайте файл
.fetchmailrc:poll example.net protocol pop3 fetchall pass MySecretЭтот файл не должен быть доступен на чтение никому, кроме
user, поскольку в нем находится пароль
MySecret.Для отправки почты с правильным заголовком
from:, вам потребуется сообщить
sendmail использовать
user@example.net вместо
user@bsd.home. Вы можете также указать
sendmail отправлять почту через relay.example.net, для более быстрой пересылки
почты.Должен подойти следующий файл .mc:VERSIONID(`bsd.home.mc version 1.0')
OSTYPE(bsd4.4)dnl
FEATURE(nouucp)dnl
MAILER(local)dnl
MAILER(smtp)dnl
Cwlocalhost
Cwbsd.home
MASQUERADE_AS(`example.net')dnl
FEATURE(allmasquerade)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(nocanonify)dnl
FEATURE(nodns)dnl
define(`SMART_HOST', `relay.example.net')
Dmbsd.home
define(`confDOMAIN_NAME',`bsd.home')dnl
define(`confDELIVERY_MODE',`deferred')dnlОбратитесь к предыдущему разделу за информацией о том, как
преобразовать этот файл .mc в файл
sendmail.cf. Не забудьте также перезапустить
sendmail после обновления
sendmail.cf.JamesGorhamНаписал SMTP аутентификацияНаличие SMTP аутентификации на почтовом сервере
дает множество преимуществ. SMTP аутентификация
может добавить дополнительный уровень безопасности к
sendmail, и позволяет мобильным пользователям,
подключающимся к разным хостам, возможность использовать тот же
почтовый сервер без необходимости перенастройки почтового клиента
при каждом подключении.Установите security/cyrus-sasl
из портов. Вы можете найти этот порт в
security/cyrus-sasl.
В пакете security/cyrus-sasl
есть множество параметров компиляции, и для используемого здесь
метода убедитесь, что выбран параметр
.После установки
security/cyrus-sasl,
отредактируйте /usr/local/lib/sasl/Sendmail.conf
(или создайте его если он не существует) и добавьте следующую
строку:pwcheck_method: passwdЭтот метод включит аутентификацию
sendmail через базу данных
passwd FreeBSD. Это позволяет избежать
проблем, связанных с созданием нового набора имен пользователей
и паролей для каждого пользователя, которому необходима
SMTP аутентификация, пароль для входа в систему
и для отправки почты будет одним и тем же.Теперь отредактируйте /etc/make.conf и
добавьте следующие строки:SENDMAIL_CFLAGS=-I/usr/local/include/sasl1 -DSASL
SENDMAIL_LDFLAGS=-L/usr/local/lib
SENDMAIL_LDADD=-lsaslЭти параметры необходимы sendmail
для подключения cyrus-sasl
во время компиляции. Убедитесь, что cyrus-sasl был установлен до
перекомпиляции sendmail.Перекомпилируйте sendmail, выполнив
следующие команды:&prompt.root; cd /usr/src/usr.sbin/sendmail
&prompt.root; make cleandir
&prompt.root; make obj
&prompt.root; make
&prompt.root; make installКомпиляция sendmail должна пройти
без проблем, если /usr/src не был сильно
изменен и доступны необходимые разделяемые библиотеки.После компилирования и переустановки
sendmail, отредактируйте файл
/etc/mail/freebsd.mc (или тот файл, который
используется в качестве .mc; многие
администраторы используют в качестве имени этого файла
вывод &man.hostname.1; для обеспечения уникальности).
Добавьте к нему следующие строки:dnl set SASL options
TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
define(`confDEF_AUTH_INFO', `/etc/mail/auth-info')dnlЭти параметры настраивают различные методы, доступные
sendmail для аутентификации пользователей.
Если вы хотите использовать вместо
pwcheck другой метод, обратитесь к
прилагаемой документации.Наконец, запустите &man.make.1; в каталоге
/etc/mail. Из файла
.mc будет создан файл
.cf, называющийся
freebsd.cf (или с тем именем, которое было
использовано для файла .mc). Затем
используйте команду make install restart,
которая скопирует файл в sendmail.cf,
и правильно перезапустит sendmail.
Дополнительная информация об этом процессе находится в
/etc/mail/Makefile.Если все шаги пройдены успешно, введите информацию для
аутентификации в настройки почтового клиента и отправьте тестовое
сообщение. Для определения причин возможных ошибок установите
параметр sendmail
в 13 и просмотрите
/var/log/maillog.Для включения сервиса после каждой загрузки системы вам может
потребоваться добавление в /etc/rc.conf
следующих строк:sasl_pwcheck_enable="YES"
sasl_pwcheck_program="/usr/local/sbin/pwcheck"Эти строки инициализируют SMTP_AUTH при загрузке
системы.За дальнейшей информацией обратитесь к странице
sendmail, посвященной
SMTP аутентификации.MarcSilverПредоставил Почтовые программы пользователейпочтовые программы пользователейПочтовая программа пользователя (Mail User Agent,
MUA) это приложение, используемое для отправки
и получения почты. Кроме того, поскольку почта
эволюционирует и становится более сложной,
MUA совершенствуют свои функции по обработке
почты, становятся более удобны в использовании. &os; поддерживает
множество различных пользовательских почтовых программ, каждая
из которых может быть легко установлена из коллекции портов FreeBSD. Пользователи могут
выбирать между графическими почтовыми клиентами, такими как
evolution или
balsa, консольными клиентами, такими
как mutt, pine
или mail, или веб интерфейсами, используемыми в
некоторых больших организациях.mailВ &os; в качестве MUA по умолчанию используется
&man.mail.1;. Это консольный MUA, предоставляющий
все основные функции, необходимые для отправки и получения текстовых
сообщений, хотя его возможности по работе с вложениями ограничены и
он может работать только с локальными почтовыми ящиками.Хотя mail не поддерживает работу с серверами
POP или IMAP, эти почтовые
ящики могут быть загружены в локальный файл mbox
с помощью fetchmail, который будет
обсуждаться далее в этой главе ().Для отправки и получения почты просто выполните команду
mail, как в этом примере:&prompt.user; mailСодержимое почтового ящика в каталоге
/var/mail будет автоматически
прочитано утилитой mail. Если почтовый ящик
пуст, утилита завершит работу с сообщением о том, что почта не
была обнаружена. После чтения почтового ящика запустится
интерфейс программы и будет отображен список сообщений. Сообщения
нумеруются автоматически и будут выглядеть как в этом примере:Mail version 8.1 6/6/93. Type ? for help.
"/var/mail/marcs": 3 messages 3 new
>N 1 root@localhost Mon Mar 8 14:05 14/510 "test"
N 2 root@localhost Mon Mar 8 14:05 14/509 "user account"
N 3 root@localhost Mon Mar 8 14:05 14/509 "sample"Теперь сообщения могут быть прочитаны с помощью команды
t, завершаемой номером сообщения, которое должно
быть отображено. В этом примере мы прочтем первое сообщение:& t 1
Message 1:
From root@localhost Mon Mar 8 14:05:52 2004
X-Original-To: marcs@localhost
Delivered-To: marcs@localhost
To: marcs@localhost
Subject: test
Date: Mon, 8 Mar 2004 14:05:52 +0200 (SAST)
From: root@localhost (Charlie Root)
This is a test message, please reply if you receive it.Как видно в примере выше, клавиша t выводит
сообщение со всеми заголовками. Для повторного вывода
списка сообщений необходимо использовать клавишу
h.Если требуется ответить на сообщение, используйте для
ответа mail, нажав клавишу R или
r. Клавиша R используется в
mail для ответа только отправителю,
а r для ответа и отправителю, и другим получателям
сообщения. Вы можете также завершить эти команды номером письма,
на которое хотите составить ответ. После этого необходимо ввести
ответ, конец сообщения должен быть завершен символом
. на новой строке. Пример можно увидеть ниже:& R 1
To: root@localhost
Subject: Re: test
Thank you, I did get your email.
.
EOTДля отправки нового сообщения используйте клавишу
m и введите адрес получателя. Несколько получателей
могут быть указаны через запятую. Введите тему сообщения и
его содержимое. Конец сообщения отмечается помещением
символа . на новой строке.& mail root@localhost
Subject: I mastered mail
Now I can send and receive email using mail ... :)
.
EOTВ утилите mail для вызова справки в любой
момент может быть использована команда ?,
для получения помощи по mail необходимо также
обратиться к странице справочника &man.mail.1;.Как упоминалось выше, команда &man.mail.1; не была первоначально
предназначена для работы с вложениями, и поэтому их поддержка
довольно слабая. Современные MUA,
такие как mutt, работают с вложениями
гораздо более уверенно. Но если вы все же предпочитаете
использовать mail,
установите порт converters/mpack.muttmutt это небольшая но очень
мощная почтовая программа с отличными возможностями, в числе
которых:Возможность сортировки сообщений по дискуссиям;Поддержка PGP для подписи и шифрования сообщений;Поддержка MIME;Поддержка Maildir;Широкие возможности настройки.Все эти возможности делают
mutt одним из самых лучших почтовых
клиентов. Обратитесь к за
дополнительной информацией по mutt.Стабильная версия mutt может быть
установлена из порта mail/mutt.
После установки порта, mutt может
быть запущен следующей командой:&prompt.user; muttmutt автоматически прочтет содержимое
пользовательского почтового ящика в каталоге /var/mail и отобразит почту,
если она имеется в наличии. Если почты в ящике пользователя нет,
mutt будет ожидать команд от пользователя.
В примере ниже показан mutt со
списком сообщений:Для чтения почты просто выберите сообщение с помощью клавиш
навигации и нажмите Enter. Пример
mutt, отображающего сообщение, показан
ниже:Как и команда &man.mail.1;, mutt
позволяет пользователям отвечать как только отправителю, так и всем
получателям. Для ответа только отправителю почты, используйте
клавишу r. Для группового ответа и отправителю
сообщения и всем получателям используйте клавишу
g.mutt использует &man.vi.1; в качестве
редактора для создания писем и ответа на них. Редактор можно
заменить путем создания или редактирования собственного
.muttrc в своем домашнем каталоге и установки
переменной .Для создания нового почтового сообщения нажмите
m. После введения темы
mutt запустит &man.vi.1; для создания
письма. Как только письмо будет завершено, сохраните его и закройте
vi, mutt продолжит
работу, отобразив окно с сообщением, которое должно быть отправлено.
Для отправки сообщения нажмите y. Пример окна с
сообщением показан ниже:mutt также содержит исчерпывающий
справочник, к которому можно обратиться из большинства меню,
нажав клавишу ?. Верхняя строка также показывает
клавиатурные сокращения, которые могут быть использованы.pinepine предназначен для начинающих
пользователей, но включает некоторые дополнительные
возможности.В программе pine ранее были обнаружены некоторые уязвимости,
позволяющие удаленному взломщику выполнять произвольный код
с правами пользователя локальной системы путем отправки
специально подготовленного письма. Все эти
известные проблемы были исправлены,
но код pine написан в очень небезопасном стиле и офицеры
безопасности &os; считают, что возможно наличие других
не обнаруженных уязвимостей. Имейте это ввиду при установке
pine.Текущая версия pine может быть
установлена из порта mail/pine4.
Как только порт установлен, pine можно
запустить командой:&prompt.user; pineПри первом запуске pine отображает
страницу приветствия с кратким введением, а также просьбу
команды разработчиков pine
отправить анонимное почтовое сообщение, позволяющее им
определить количество пользователей, работающих с их почтовым
клиентом. Для отправки анонимного сообщения нажмите
Enter, или E для выхода
из из приветствия без отправки анонимного сообщения. Пример
приветствия показан ниже:Затем отображается главное меню, перемещение по которому
осуществляется с помощью клавиш навигации. В главном меню
находятся ссылки для составления новых писем, просмотра почтовых
каталогов, и даже управления адресной книгой. Ниже главного меню
показаны клавиатурные сокращения, выполняющие
соответствующие задачи.По умолчанию pine открывает каталог
inbox. Для просмотра списка
сообщений нажмите I, или выберите
MESSAGE INDEX, как показано ниже:В списке показаны сообщения в текущем каталоге, они могут быть
просмотрены с помощью клавиш навигации. Подсвеченные сообщения
можно прочесть нажав Enter.На снимке экрана ниже показан пример письма, отображаемого
pine. Внизу экрана даны клавиатурные
сокращения. Например, r используется для
указания MUA ответить на отображаемое в
данный момент сообщение.Ответ на письмо в pine осуществляется
с помощью редактора pico, который
устанавливается по умолчанию вместе с pine.
pico упрощает навигацию в сообщении
гораздо проще для новых пользователей, чем &man.vi.1; или
&man.mail.1;. Как только ответ будет готов, сообщение можно отправить
нажав CtrlX.
pine запросит подтверждение.Программа pine может быть настроена
через пункт SETUP главного меню.
Обратитесь к странице
за дальнейшей информацией.MarcSilverПредоставил Использование fetchmailиспользование fetchmailfetchmail это полноценный
IMAP и POP клиент,
позволяющий пользователям автоматически загружать почту с
удаленных серверов IMAP и POP
в локальные почтовые ящики; так доступ к почтовым ящикам упрощается.
fetchmail может быть установлен из
порта mail/fetchmail и
предоставляет различные возможности, в том числе:Поддержка протоколов POP3,
APOP, KPOP,
IMAP, ETRN и
ODMR.Возможность пересылки почты через SMTP,
что позволяет использовать функции фильтрации, перенаправления и
синонимов.Может быт запущен в режиме даемона для периодической проверки
поступающих сообщений.Может забирать почту с нескольких почтовых ящиков и рассылать
ее различным локальным пользователям в зависимости от
настроек.Описание всех возможностей
fetchmail выходит за пределы этой главы,
за дополнительной информацией обратитесь к документации по
fetchmail. Утилита
fetchmail требует наличия
файла настройки .fetchmailrc. Этот файл
включает информацию о сервере, а также информацию для аутентификации.
Поскольку этот файл содержит важную информацию, правильно будет
сделать его доступным для чтения только владельцем с помощью
следующей команды:&prompt.user; chmod 600 .fetchmailrcВ следующем примере файл .fetchmailrc
предназначен для загрузки одного почтового ящика по протоколу
POP. Этот файл указывает
fetchmail соединиться с
example.com с именем пользователя
joesoap и паролем XXX.
В примере подразумевается, что пользователь joesoap
существует также и в локальной системе.poll example.com protocol pop3 username "joesoap" password "XXX"В следующем примере производится подключение к нескольким
POP и IMAP серверам,
при необходимости почта перенаправляется другим локальным
пользователям:poll example.com proto pop3:
user "joesoap", with password "XXX", is "jsoap" here;
user "andrea", with password "XXXX";
poll example2.net proto imap:
user "john", with password "XXXXX", is "myth" here;Утилита fetchmail может работать
в режиме даемона с флагом , заданным с
интервалом (в секундах), через который
fetchmail должен опрашивать
серверы, перечисленные в .fetchmailrc.
В следующем примере fetchmail будет
забирать почту каждые 60 секунд:&prompt.user; fetchmail -d 60Дополнительную информацию о fetchmail
можно найти на сайте .MarcSilverПредоставил Использование procmailиспользование procmailУтилита procmail это невероятно
мощное приложение, используемое для фильтрации входящей почты.
Она позволяет пользователям определять правила,
которые могут быть сопоставлены входящим письмам для выполнения
определенных действий или для перенаправления почты в
альтернативные почтовые ящики и/или на почтовые адреса.
procmail может быть установлен
с помощью порта mail/procmail.
После установки он может быть непосредственно интегрирован в
большинство MTA; сверьтесь с документацией
на ваш MTA. Другой способ интеграции
procmail – добавление в
файл .forward, находящийся в домашнем
каталоге пользователя, следующей строки:"|exec /usr/local/bin/procmail || exit 75"В этом разделе будут показаны основы настройки правил
procmail, а также краткое описание их
действия. Эти и другие правила должны быть помещены в файл
.procmailrc, который должен находиться в домашнем
каталоге пользователя.Большую часть этих правил также можно найти на странице справочника
&man.procmailex.5;.Перенаправление всей почты от user@example.com на
внешний адрес goodmail@example2.com::0
* ^From.*user@example.com
! goodmail@example2.comПеренаправление всей почты объемом меньше 1000 байт на внешний адрес
goodmail@example2.com::0
* < 1000
! goodmail@example2.comПеренаправление всей почты, отправляемой на
alternate@example.com, в почтовый ящик
alternate::0
* ^TOalternate@example.com
alternateПеренаправление всей почты с Spam в
/dev/null::0
^Subject:.*Spam
/dev/nullПолезный пример, обрабатывающий входящую почту со списков
рассылки &os;.org и
помещающий каждый список в отдельный почтовый ящик.:0
* ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG
{
LISTNAME=${MATCH}
:0
* LISTNAME??^\/[^@]+
FreeBSD-${MATCH}
}
diff --git a/ru_RU.KOI8-R/books/handbook/users/chapter.sgml b/ru_RU.KOI8-R/books/handbook/users/chapter.sgml
index acbfed0bca..497f388757 100644
--- a/ru_RU.KOI8-R/books/handbook/users/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/users/chapter.sgml
@@ -1,1163 +1,1163 @@
NeilBlakey-MilnerПредоставил ДенисПеплинПеревод на русский язык: Пользователи и основы управления учетными записямиКраткий обзорFreeBSD позволяет одновременную работу множества пользователей
на одном компьютере. Разумеется, только один пользователь может сидеть
за клавиатурой и перед экраном в один момент времени
Конечно, пока не используется множество терминалов, но мы
оставим эту тему для ., но любое количество пользователей может выполнять работу
через сеть. Для использования системы у каждого пользователя должна
быть учетная запись.После прочтения этой главы вы будете знать:Различия между разнообразными учетными записями в системе
FreeBSD.Как добавлять учетные записи пользователей.Как удалять учетные записи пользователей.Как изменять данные учетных записей пользователей, такие
как полное имя пользователя, или предпочитаемую оболочку.Как устанавливать ограничения на использование ресурсов,
например на использование памяти и времени CPU для учетных записей
или групп учетных записей.Как использовать группы для упрощения управлением учетными
записями.Перед прочтением этой главы вам потребуется:Понимание основ &unix; и FreeBSD ().ВведениеВесь доступ к системе осуществляется через учетные записи,
и все процессы запускаются пользователями, так что управление
пользователями и учетными записями в системах FreeBSD имеет
всеобъемлющее значение.С каждой учетной записью в системе FreeBSD связана определенная
идентификационная информация.Имя пользователяИмя пользователя в том виде, в каком оно вводится в
приглашение login:. Имена пользователей
должны быть уникальны в пределах одного компьютера; не может
быть двух пользователей с одинаковым именем пользователя.
Существует множество правил для создания правильных имен
пользователей, документированных в &man.passwd.5;; вы как
правило будете использовать имена пользователей, состоящие
из восьми или меньшего количества символов, все символы в
нижнем регистре.ПарольС каждой учетной записью связан пароль. Пароль может быть
пустым, в этом случае для доступа к системе не нужен пароль.
Обычно это очень плохая идея; у каждой учетной записи должен быть
пароль.ID пользователя (User ID, UID)The UID это номер, традиционно от 0 до
65535Возможно использование UID/GID вплоть до
4294967295, но эти ID могут вызвать серьезные проблемы с
программами, делающими предположения о значениях
ID., используемый для однозначной идентификации
пользователя в системе. Сама система FreeBSD для идентификации
пользователей использует UID — любая команда FreeBSD,
позволяющая вам указывать имя пользователя, первым делом
преобразует его к UID. Это означает, что вы можете создать
несколько учетных записей с различными именами пользователей,
но с одним UID. FreeBSD будет воспринимать эти учетные записи как
одного пользователя. Маловероятно, что вам когда-либо это
понадобится.ID группы (Group ID, GID)GID это номер, традиционно от 0 до
65535, используемый
для однозначной идентификации главной группы, к которой
принадлежит пользователь. Группы это механизм для контроля
доступа к ресурсам на основе GID пользователя вместо его UID.
Это может значительно уменьшить размер некоторых файлов настройки.
Кроме того, пользователь может быть включен более чем в одну
группу.Класс логинаКлассы логинов это расширение к механизму групп,
позволяющее системе более гибко управлять различными
пользователями.Время изменения пароляПо умолчанию FreeBSD не принуждает пользователей периодически
менять пароли. Вы можете включить эту функцию для определенных
пользователей, заставив некоторых или всех пользователей менять
пароли по прошествии определенного времени.Время истечения действия учетной записиПо умолчанию в FreeBSD время действия учетных записей не
ограничено. Если вы создаете учетные записи, продолжительность
жизни которых ограничена, например в учетные записи для
студентов в школе, вы можете определить время истечения
действия учетной записи. После наступления этого времени
учетная запись не может использоваться для входа в систему,
хотя каталоги и файлы этой учетной записи останутся
нетронутыми.Полное имя пользователяИмя пользователя является уникальным идентификатором
учетной записи в FreeBSD, но недостаточно для сопоставления
с реальным именем пользователя. Эта информация может быть
добавлена в учетную запись.Домашний каталогДомашний каталог это полный путь к каталогу в системе, в
котором пользователь начнет работать после входа в систему.
По общепринятому соглашению все домашние каталоги пользователей
помещаются в
/home/username
или
/usr/home/username.
Пользователи хранят личные файлы в домашнем каталоге и в любых
подкаталогах, создаваемых внутри домашнего каталога.Оболочка пользователяОболочка необходима пользователям как средство взаимодействия
с системой по умолчанию. Существует множество различных видов
оболочек, опытные пользователи работают с собственными
настройками, которые могут быть отражены в установках их учетных
записей.Существует три основных типа учетных записей: суперпользователь, системные пользователи, и учетные записи пользователей.
Учетная запись суперпользователя, обычно называемая
root, используется для управления системой
без ограничения привилегий. Системные пользователи запускают
сервисы. Наконец, учетные записи пользователей необходимы обычным
людям для входа в систему, чтения почты, и так далее.Учетная запись суперпользователяучетные записисуперпользователь (root)Учетная запись суперпользователя, обычно называемая
root, существует в системе изначально
для целей системного администрирования, и не должна использоваться
для повседневных задач, таких как получение и отправка почты,
общее исследование системы или программирование.Причина в том, что суперпользователь, в отличие от обычных
пользователей, может работать без ограничений и неправильное
использование учетной записи суперпользователя может привести к
полному уничтожению системы. Учетные записи пользователей не
способны уничтожит систему вследствие ошибки, поэтому обычно
лучше использовать учетные записи обычных пользователей везде,
где это возможно, пока вам не потребуются дополнительные
привилегии для какой-то определенной задачи.Вы всегда должны дважды и трижды проверять команды, выполняемые
под учетной записью суперпользователя, поскольку даже один лишний
пробел или отсутствующий символ может привести к безвозвратной
потере данных.Таким образом, первое, что вам необходимо сделать после прочтения
этой главы, это создать непривилегированную учетную запись пользователя
для повседневного использования (если вы еще этого не сделали).
Это необходимо сделать независимо от того, работаете ли вы на
многопользовательском или однопользовательском компьютере.
Позже в этой главе мы обсудим как создать дополнительные учетные записи,
и как менять уровень привилегий между нормальным пользователем и
суперпользователем.Системные учетные записиучетные записисистемныеСистемные пользователи предназначены для запуска сервисов, таких
как DNS, почта, веб серверы и так далее. Это необходимо по соображениям
безопасности; если все сервисы работают от суперпользователя, они
могут действовать без ограничений.учетные записиdaemonучетные записиoperatorПримеры системных пользователей это daemon,
operator, bind (для
Domain Name Service, DNS), и news. Зачастую
системные администраторы создают httpd
для запуска устанавливаемых веб серверов.учетные записиnobodynobody это классический непривилегированный
системный пользователь. Тем не менее, необходимо помнить, что чем
больше сервисов используют nobody, тем больше
файлов и процессов ассоциировано с этим пользователем, и следовательно
тем больше прав появляется у этого пользователя.Учетные записи пользователейучетные записипользователейУчетные записи пользователей в основном означают доступ в систему
для обычных людей, и эти учетные записи отделяют пользователя и
его рабочую среду, предотвращая повреждение пользователем системы
или данных других пользователей, и позволяя пользователям
настраивать свою рабочую среду без влияния на других
пользователей.Каждая персона, получающая доступ к вашей системе, должна получить
уникальную учетную запись пользователя. Это позволит вам выяснить
кто что делает, предотвращая сбивание одним пользователем настроек
других пользователей, чтение чужой почты и так далее.Каждый пользователь может настраивать свою собственную рабочую
среду для приспособления системы под свои нужды с помощью альтернативных
оболочек, редакторов, привязки клавиш и настроек языка.Изменение учетных записейучетные записиизменениеВ среде &unix; существуют различные команды для работы с учетными
записями пользователей. Наиболее часто используемые команды приведены
в таблице, ниже находятся более детальные примеры их
использования.КомандаКраткое описание&man.adduser.8;Рекомендуемое приложение командной строки для добавления
новых пользователей.&man.rmuser.8;Рекомендуемое приложение командной строки для удаления
пользователей.&man.chpass.1;Гибкий инструмент для изменения информации в базе данных
пользователей.&man.passwd.1;Простой инструмент командной строки для изменения паролей
пользователей.&man.pw.8;Мощный и гибкий инструмент для изменения любой информации,
связанной с учетными записями пользователей.adduserучетные записидобавлениеadduser/usr/share/skelкаталог шаблоновskeleton directory&man.adduser.8; это простая программа для добавления новых
пользователей. Она создает записи в системных файлах
passwd и group.
Она также создает домашний каталог для нового пользователя,
копируя файлы настройки по умолчанию (dotfiles, файлы
имя который начинается с символа .) из
/usr/share/skel и опционально может отправлять
новому пользователю приветственное сообщение.В &os; 5.0, скрипт &man.adduser.8; был переписан с языка
Perl на язык shell, работающий в качестве оболочки к
&man.pw.8;, так что использование этого скрипта в &os; 4.X
немного отличается использования в &os; 5.X.Для создания файла настройки используйте
adduser -s -config_create.
С параметром &man.adduser.8;
не будет выводить информацию. Позже для изменения настроек
по умолчанию мы используем параметр .
Далее, мы настроим параметры &man.adduser.8; по умолчанию и
создадим нашу первую учетную запись пользователя, поскольку
повседневное использование root
неприемлемо.Настройка adduser и добавление
пользователя в &os; 4.X&prompt.root; adduser -v
Use option ``-silent'' if you don't want to see all warnings and questions.
Check /etc/shells
Check /etc/master.passwd
Check /etc/group
Enter your default shell: csh date no sh tcsh zsh [sh]: zsh
Your default shell is: zsh -> /usr/local/bin/zsh
Enter your default HOME partition: [/home]:
Copy dotfiles from: /usr/share/skel no [/usr/share/skel]:
Send message from file: /etc/adduser.message no
[/etc/adduser.message]: no
Do not send message
Use passwords (y/n) [y]: y
Write your changes to /etc/adduser.conf? (y/n) [n]: y
Ok, let's go.
Don't worry about mistakes. I will give you the chance later to correct any input.
Enter username [a-z0-9_-]: jru
Enter full name []: J. Random User
Enter shell csh date no sh tcsh zsh [zsh]:
Enter home directory (full path) [/home/jru]:
Uid [1001]:
Enter login class: default []:
Login group jru [jru]:
Login group is ``jru''. Invite jru into other groups: guest no
[no]: wheel
Enter password []:
Enter password again []:
Name: jru
Password: ****
Fullname: J. Random User
Uid: 1001
Gid: 1001 (jru)
Class:
Groups: jru wheel
HOME: /home/jru
Shell: /usr/local/bin/zsh
OK? (y/n) [y]: y
Added user ``jru''
Copy files from /usr/share/skel to /home/jru
Add another user? (y/n) [y]: n
Goodbye!
&prompt.root;В результате мы изменили оболочку по умолчанию на
zsh (дополнительная оболочка, находящаяся
в коллекции портов), и отключили отправку добавляемым пользователям
письма с приветствием. Затем мы сохранили настройки, создали
учетную запись для jru, и убедились, что
jru находится в группе
wheel (теперь этот пользователь может получить
привилегии root с помощью команды
&man.su.1;.)Пароль, который вы вводите, не отображается,
звездочки при вводе пароля также не отображаются.
убедитесь, что не ввели пароль неправильно дваждыТеперь просто используйте &man.adduser.8; без аргументов,
и вам не потребуется изменять настройки по умолчанию. Если
программа будет запрашивать изменение настроек по умолчанию,
попробуйте параметр .Добавление пользователя в &os; 5.X&prompt.root; adduser
Username: jru
Full name: J. Random User
Uid (Leave empty for default):
Login group [jru]:
Login group is jru. Invite jru into other groups? []: wheel
Login class [default]:
Shell (sh csh tcsh zsh nologin) [sh]: zsh
Home directory [/home/jru]:
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : jru
Password : ****
Full Name : J. Random User
Uid : 1001
Class :
Groups : jru wheel
Home : /home/jru
Shell : /usr/local/bin/zsh
Locked : no
OK? (yes/no): yes
adduser: INFO: Successfully added (jru) to the user database.
Add another user? (yes/no): no
Goodbye!
&prompt.root;rmuserrmuserучетные записиудалениеДля полного удаления пользователя из системы вы можете
использовать &man.rmuser.8;. Эта программа выполняет следующие
действия:Удаление записи пользователя из &man.crontab.1; (если
она присутствует).Удаляет задачи &man.at.1;, принадлежащие
пользователю.Уничтожает все процессы, принадлежащие пользователю.Удаляет пользователя из локального файла паролей.Удаляет домашний каталог пользователя (если он принадлежит
пользователю).Удаляет принадлежащую пользователю входящую почту из
/var/mail.Удаляет все файлы, принадлежащие пользователю, из каталогов
с временными файлами, например /tmp.Наконец, удаляет имя пользователя из всех групп, которым оно
принадлежит, в /etc/group.
Если после этого удаления группа остается пустой и
имя группы совпадает с именем пользователя, она удаляется;
Это необходимо для удаления пользовательских уникальных
групп, создаваемых &man.adduser.8;.&man.rmuser.8; не может использоваться для удаления учетной
записи суперпользователя, поскольку это почти всегда означает
разрушение системы.По умолчанию используется интерактивный режим, программа
пытается убедиться, что вы уверены в своих действиях.Интерактивное удаление учетной записи с помощью
rmuser&prompt.root; rmuser jru
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
Updating password file, updating databases, done.
Updating group file: trusted (removing group jru -- personal group is empty) done.
Removing user's incoming mail file /var/mail/jru: done.
Removing files belonging to jru from /tmp: done.
Removing files belonging to jru from /var/tmp: done.
Removing files belonging to jru from /var/tmp/vi.recover: done.
&prompt.root;chpasschpass&man.chpass.1; изменяет информацию в базе данных пользователей:
пароли, оболочки, персональную информацию.Только системные администраторы с правами суперпользователя
могут изменять информацию и пароли других пользователей с помощью
&man.chpass.1;.При запуске без параметров (кроме опционального имени
пользователя), &man.chpass.1; вызывает редактор, содержащий
информацию о пользователе. Когда пользователь выходит из редактора,
база данных пользователей обновляется этой информацией.В &os; 5.X, после выхода из редактора будет запрошен
пароль (если вы не суперпользователь.Интерактивная работа с chpass
суперпользователя#Changing user database information for jru.
Login: jru
Password: *
Uid [#]: 1001
Gid [# or name]: 1001
Change [month day year]:
Expire [month day year]:
Class:
Home directory: /home/jru
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:Обычные пользователи могут изменять лишь небольшую часть этой
информации, и только для своей учетной записи.Интерактивная работа с chpass обычного
пользователя#Changing user database information for jru.
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:&man.chfn.1; и &man.chsh.1; это всего лишь ссылки на
&man.chpass.1;, как и &man.ypchpass.1;, &man.ypchfn.1; и
&man.ypchsh.1;. NIS поддерживается автоматически, так что
указание yp перед командой не обязательно.
Если это непонятно, не беспокойтесь, NIS будет рассмотрен в
- .
+ .
passwdpasswdучетные записиизменение пароля&man.passwd.1; это обычный способ изменения собственного пароля
пользователя, или пароля другого пользователя
суперпользователем.Для предотвращения случайного или неавторизованного изменения,
перед установкой нового пароля необходимо ввести старый.Изменение пароля&prompt.user; passwd
Changing local password for jru.
Old password:
New password:
Retype new password:
passwd: updating the database...
passwd: doneИзменение пароля другого пользователя
суперпользователем&prompt.root; passwd jru
Changing local password for jru.
New password:
Retype new password:
passwd: updating the database...
passwd: doneКак и с &man.chpass.1;, &man.yppasswd.1; это всего лишь
ссылка на &man.passwd.1;, так что NIS работает с обеими
командами.pwpw&man.pw.8; это утилита командной строки для создания, удаления,
модифицирования и отображения пользователей и групп. Она
функционирует как внешний интерфейс к системным файлам пользователей
и групп. У &man.pw.8; очень мощный набор параметров командной строки,
что делает это программу подходящей для использования в shell
скриптах, но новым пользователям она может показаться более сложной,
чем другие представленные здесь команды.Ограничение пользователейограничение пользователейучетные записиограничениеЕсли у вас есть пользователи, может появиться мысль о возможности
ограничения нагрузки на систему. FreeBSD предоставляет
администратору несколько способов ограничения объема
занимаемых пользователями системных ресурсов. Существует два вида
ограничений: дисковые квоты и другие ограничения ресурсов.квотыограничение пользователейквотыдисковые квотыДисковые квоты ограничивают объем пространства, занимаемого
пользователями, это способ быстрой проверки объема без вычисления
его каждый раз. Квоты обсуждаются в .Другие ограничения ресурсов включают способы ограничения
использования CPU, памяти и других ресурсов, которые могут потребляться
пользователем. Ограничения накладываются с помощью классов учетных
записей и обсуждаются в этом разделе./etc/login.confКлассы учетных записей определяются в
/etc/login.conf. Описание полной семантики
выходит за пределы обсуждаемого здесь материала, она детально
описана в странице справочника &man.login.conf.5;. Достаточно
сказать, что каждому пользователю присвоен класс
(default по умолчанию), и каждому классу присвоен
набор характеристик. Характеристика определяется в виде пары
имя=значение,
где имя это определенный идентификатор,
а значение это произвольная строка,
обрабатываемая в зависимости от имени. Настройка классов и
характеристик довольно проста и также описана в
&man.login.conf.5;.Система не читает настройки в
/etc/login.conf непосредственно, она обращается
к файлу базы данных /etc/login.conf.db.
Для создания /etc/login.conf.db из
/etc/login.conf, выполните следующую
команду:&prompt.root; cap_mkdb /etc/login.confОграничения на ресурсы отличаются от обычных характеристик:
во-первых, для каждого ограничения существует мягкое
(текущее) и жесткое ограничение. Мягкое ограничение
может настраиваться пользователем или приложением, но не может
превышать жесткое ограничение. Последнее может быть уменьшено
пользователем, но никогда не увеличено. Во-вторых, большинство
ограничений ресурсов применяются к процессам определенного пользователя,
а не к пользователю вообще. Обратите внимание, что эти различия
реализуются специфической обработкой лимитов, а не реализацией
структуры характеристик учетных записей (т.е. это не
настоящий специальный случай характеристик).Ниже приведен список наиболее часто используемых ограничений
на ресурсы (остальные, вместе с другими характеристиками
можно найти в &man.login.conf.5;).coredumpsizecoredumpsizeограничение пользователейcoredumpsizeОграничение на размер файла core, генерируемого программой,
по очевидным причинам подчиняющееся другим ограничениям
на используемое дисковое пространство (например,
filesize, или дисковые квоты).
Тем не менее, оно часто используется как менее строгий
метод контролирования потребления дискового пространства:
поскольку пользователь не создает файлы core самостоятельно,
и зачастую не удаляет их, установка этого параметра может
предохранить его от выхода за пределы дисковых квот, если
большая программа (например, emacs)
создаст core файл.cputimecputimeограничение пользователейcputimeЭто максимальное количество времени CPU, потребляемого
пользователем. Превысившие это время процессы будут уничтожены
ядром.
Это ограничение потребляемого
времени CPU, а не процентов использования
CPU, которые отображаются в некоторых полях &man.top.1;
и &man.ps.1;. Ограничения на них на время написания этого
материала невозможны и такие ограничения практически
бесполезны: компилятор — вполне законное приложение
— иногда может легко использовать почти 100%
CPU.filesizefilesizeограничение пользователейfilesizeЭто максимальный размер файла, который может обрабатываться
пользователем. В отличие от дисковых
квот, это ограничение применяется к отдельным файлам,
а не ко всему набору принадлежащих пользователю файлов.maxprocmaxprocограничение пользователейmaxprocЭто максимальное число процессов, которые могут быть
запущены пользователем. В это число включаются и консольные
и фоновые процессы. По очевидным причинам, они не могут быть
больше, чем системное ограничение, указываемое через
переменную &man.sysctl.8; kern.maxproc.
Имейте ввиду, что установка слишком жестких ограничений может
стать помехой работе пользователя: зачастую полезно входить
в систему с нескольких консолей или использовать каналы.
Некоторые задачи, такие как компиляция большой программы,
также порождают множество процессов (например, &man.make.1;,
&man.cc.1; и другие препроцессоры).memorylockedmemorylockedограничение пользователейmemorylockedЭто максимальный объем памяти, блокировка которого
может быть запрошена процессом (см. например
&man.mlock.2;). Некоторые критически важные для системы
программы, такие как &man.amd.8;, блокируют память так,
что при выгрузке они не создают системе дополнительных
проблем.memoryusememoryuseограничение пользователейmemoryuseЭто максимальный объем памяти, которая может быть занята
процессами. Он включает основную и основную память и
использование подкачки. Это ограничение не снимает все вопросы,
связанные с использованием памяти, но для начала это подходящее
ограничение.openfilesopenfilesограничение пользователейopenfilesЭто максимальное количество файлов, которые могут быть
открыты процессами. В FreeBSD, файлы также используются для
представления сокетов и каналов IPC; не устанавливайте слишком
маленькое значение. Ограничение этого параметра, устанавливаемое
для всей системы, определяется переменной &man.sysctl.8;
kern.maxfiles.sbsizesbsizeограничение пользователейsbsizeЭто ограничение потребляемого пользователем объема сетевой
памяти, т.е. mbufs. Оно было введено как ответ на старые
DoS атаки, при которых создавалось множество сокетов,
но обычно может быть использовано и для ограничения
сетевых соединений.stacksizestacksizeограничение пользователейstacksizeЭто максимальный размер, до которого может вырасти стек
процесса. Сам по себе этот параметр не может ограничить
размер используемой программой памяти, следовательно,
его необходимо использовать вместе с другими ограничениями.Существуют несколько других аспектов, которые необходимо учитывать
при установке ограничений ресурсов. Ниже приведены некоторые общие
подсказки, советы и различные комментарии.Процессам, загружаемым при старте системы скриптами
/etc/rc присваивается класс
daemon.Хотя /etc/login.conf, поставляемый с
системой, это хороший источник подходящих значений для большинства
ограничений, только вы, администратор, можете знать подходящие
значения для вашей системы. Установка слишком слабых ограничений
может повлечь злоупотребления системой, а установка слишком
сильных ограничений может стать помехой производительности.Пользователи X Window System (X11) возможно должны получить
больше ресурсов, чем другие пользователи. X11 сама по себе
потребляет много ресурсов, а также провоцирует пользователей
на одновременный запуск большего количества программ.Помните, что многие ограничения применяются к отдельным
процессам, а не к пользователю вообще. Например, установка
openfiles в 50 означает, что каждый
процесс, запущенный пользователем, может открывать до 50
файлов. Таким образом, общее количество файлов, которые могут
быть открыты пользователем, вычисляется как
openfiles, помноженное на
maxproc. Это также применимо к потребляемой
памяти.За дальнейшей информацией по ограничениям на ресурсы, классам
учетных записей и характеристикам, обращайтесь к соответствующим
страницам справочника.Персонализация пользователейЛокализация это окружение, настраиваемое системным администратором
или пользователем для работы с различными языками, наборами
символов, стандартами даты и времени, и так далее. Это обсуждается
в главе локализация.Группыгруппы/etc/groupsучетные записигруппыГруппа это просто список пользователей. Группа идентифицируется
по имени и GID (Group ID, идентификатор группы). В FreeBSD
(и большинстве других &unix;-подобных системах) ядро для определения
прав процесса использует два фактора: его ID пользователя и
список групп, которым он принадлежит. Когда вы слышите что-то о
group ID пользователя или процесса, это обычно означает
только первую группу из списка.Имена групп связываются с ID групп в файле
/etc/group. Это текстовый файл с четырьмя
разделенными двоеточием полями. Первое поле это имя группы,
второе это зашифрованный пароль, третье это ID группы, а четвертое
это разделенный запятыми список членов группы. Этот файл может
быть безопасно отредактирован вручную (предполагается, конечно,
что вы не сделаете синтаксических ошибок!). За более полным описанием
синтаксиса обратитесь к странице справочника &man.group.5;.Если вы не хотите редактировать /etc/group
вручную, используйте команду &man.pw.8; для добавления и
редактирования групп. Например, для добавления группы,
называемой teamtwo, и проверки ее существования
вы можете использовать:Добавление группы с использованием &man.pw.8;&prompt.root; pw groupadd teamtwo
&prompt.root; pw groupshow teamtwo
teamtwo:*:1100:Число 1100 это ID группы
teamtwo. На данный момент в,
teamtwo нет членов, и поэтому она практически
бесполезна. Давайте изменим эту ситуацию, добавив
jru в группу teamtwo.Добавление пользователя в группу с использованием
&man.pw.8;&prompt.root; pw groupmod teamtwo -M jru
&prompt.root; pw groupshow teamtwo
teamtwo:*:1100:jruАргумент к параметру это разделенный
запятыми список пользователей, являющихся членами группы. Из предыдущих
разделов мы знаем, что файл паролей также указывает группу для
каждого пользователя. Пользователь автоматически добавляется системой
к списку групп; пользователь не будет показан как член группы при
использовании &man.pw.8; , но эта
информация будет показана при использовании &man.id.1; или похожего
инструмента. Другими словами, с этим параметром программа &man.pw.8;
работает только с файлом /etc/group; она никогда
не будет пытаться получить дополнительную информацию из файла
/etc/passwd.Использование &man.id.1; для определения принадлежности к
группам&prompt.user; id jru
uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)Как вы можете видеть, jru является членом
групп jru и
teamtwo.За дальнейшей информацией о &man.pw.8;, обратитесь к ее странице
справочника, а за дополнительной информацией о формате файла
/etc/group к странице справочника
&man.group.5;.