Вопросы и Ответы по FreeBSD

The FreeBSD Russian Documentation Project

Этот документ является сборником вопросов и ответов, опубликованных в конференциях FidoNet(tm) RU.UNIX.BSD и RU.UNIX, конференции Usenet comp.unix.bsd.freebsd.misc, которые посвящены обсуждению вопросов, связанных с функционированием операционной системы FreeBSD, свободно распространяемого варианта ОС UNIX(r). Материал, включённый в этот документ, относится к различным версиям FreeBSD и по возможности не дублирует содержимого официального FAQ по этой операционной системе.

Последняя, обновленная версия Q&A доступна с www.FreeBSD.org.ua/qa/

Если вам кажется, что какой-то вопрос освещён в этом документе недостаточно или не затронут совсем, присылайте свои замечания и добавления составителю.

Так как материал, публикуемый в открытых конференциях FidoNet(tm) и Usenet, не является чьей-либо собственностью, составитель этого документа оставляет за собой право не указывать авторства приводимых советов и рекомендаций (из соображений удобства сопровождения), хотя это будет сделано по первому требованию стороны, считающей себя потерпевшей. Список тех, кто присылал свои замечания и чьи рекомендации использованы при составлении этого документа, приведён в разделе благодарностей.


Table of Contents
1 Введение. Общие сведения.
1.1 Где можно найти информацию о FreeBSD?
1.2 Чем FreeBSD лучше, чем Linux?
1.3 В чём разница между 2.2.8-RELEASE и 3.0-RELEASE?
1.4 Где можно купить/заказать компакт-диски с дистрибутивом FreeBSD?
1.5 Что такое форматы ELF и A.OUT?
1.6 Как самому сделать компакт-диск с дистрибутивом FreeBSD?
1.7 Расскажите, как произвести постепенне обновление системы без полной переустановки системы?
1.8 Как при обновлении дерева CVS с помощью cvsup исключить, скажем, подкаталоги, содержащие иноязычную документацию, недоступную для понимания?
1.9 Где и какую литературу по UNIX можно купить?
1.10 В чем разница между {Free|Net|Open}BSD?
2 Установка.
2.1 Как автоматизировать процесс установки FreeBSD, скажем, на несколько однотипных машин?
3 Ядро. Компиляция, диагностика, настройка. Устройства.
3.1 Что вообще можно сконфигурировать?
3.2 Как в конфигурационном файле ядра описываются стандартные диски?
3.3 Что означает сообщение /kernel: stray irq X?
3.4 Что означает сообщение /kernel: ed0: device timeout?
3.5 Что означает сообщение free inode /var/xxx/yy had XXXXX blocks?
3.6 Что означает сообщение /kernel ed1: promiscious mode enabled?
3.7 Что означает сообщение /kernel: sioX: Y more silo overflow (total Z)?
3.8 Как запретить перезагрузку машины по нажатию клавиш Ctrl-Alt-Del?
3.9 Откуда берётся число #XX в выводе команды uname типа FreeBSD 3.0-CURRENT #18 Mon Dec 7 11:21:27 MSK 1998?
3.10 Как избавиться от сообщений ядра, постоянно выводимых на терминал?
3.11 Что такое LKM и KLD?
3.12 Что означает число X при выполнении команды MAKEDEV ttyvX?
3.13 Что означает сообщение file: table is full?
3.14 На винчестере имеется два раздела с FreeBSD. Невозможно загрузить систему с одного из них, хотя все разделы опознаются загрузчиком, и загрузка происходит только с первого из них.
3.15 FreeBSD зависает при перезагрузке по команде reboot. с диагностикой 'syncing disks... done Rebooting...' либо 'syncing disks... done Rebooting... Keyboard reset did not work, attempting CPU shutdown'.
3.16 Что значит сообщение /usr: optimization changed from SPACE to TIME?
4 Аппаратное обеспечение.
4.1 Какое аппаратное обеспечение поддерживается FreeBSD?
4.2 Будет ли FreeBSD работать на 386DX с винчестером 1.5Гб?
4.3 Поддерживается ли SMP?
4.4 Поддерживаются ли устройства PnP?
4.5 Поддерживается ли адаптер dbs-100 от Iwill с набором микросхем Adaptec 7895?
4.6 Поддерживаются ли сетевые адаптеры семейства 3Com EtherLink 3c90X?
4.7 Поддерживается ли сетевой адаптер Compex RL2000/Realtek RE2000 PCI?
4.8 Какой сетевой адаптер предпочесть: 3Com 3C509B TX или Intel EtherExpress?
4.9 Какие многопортовые сетевые адаптеры поддерживаются?
4.10 Поддерживается ли Digiboard?
4.11 Печать на принтер, подключенный непосредственно к машине, происходит очень медленно, с большими паузами.
4.12 Как использовать Zip-Drive на параллельном порту?
4.13 Поддерживается ли режим LBA?
4.14 Можно ли подключить звуковой адаптер Sound Blaster AWE32?
4.15 Какие типы RAID-контроллеров поддерживаются?
4.16 Поддерживаются ли SCSI RAID-контроллеры от Compaq?
4.17 Какие многопортовые коммуникационные адаптеры можно без проблем использовать с FreeBSD?
4.18 Какие сетевые адаптеры на наборе микросхем фирмы DEC можно использовать?
4.19 На каких серверах серии HP Netserver работает FreeBSD?
4.20 Можно ли организовать вычислительный кластер из FreeBSD?
4.21 Допускает ли FreeBSD загрузку из BootROM?
4.22 Какой звуковой адаптер лучше использовать?
4.23 Как настроить PnP во FreeBSD?
4.24 Как настроить USR Winmodem?
4.25 Как связать два компьютера витой парой без концентратора или коммутатора, используя только сетевые адаптеры?
4.26 Где можно найти информацию о командах и логике работы терминалов типа VTxxx / ANSI?
4.27 Как работать с Arvid?
4.28 Какое программное обеспечение нужно для работы со сканером?
4.29 Как узнать, использует ли FreeBSD второй процессор?
4.30 Как назначить загрузку по умолчанию со второго винчестера на первом контроллере?
4.31 Как работать с UPS?
4.32 Не работает звуковой адаптер - сообщения Sound: DMA timed out - IRQ/DRQ config error?
4.33 Как посмотреть конфигурацию звукового адаптера?
4.34 Как описать в ядре звуковой адаптер ESS 688 Audiodrive?
5 Работа с дисками. Файловые системы.
5.1 Возможно ли использование файловой системы Linux, расположенной на одном из дисков того же компьютера, где функционирует FreeBSD?
5.2 Можно ли организовать программный RAID?
5.3 Возможно ли зеркалирование дисков?
5.4 Как сделать длинные имена на разделах DOS?
5.5 На диске образовался файл гигантского размера, хотя fsck никакой диагностики не выдает.
5.6 Что означает флаг noexec для файловой системы?
5.7 Как управлять различными режимами работы винчестера IDE?
5.8 "Сыпятся" по непонятным причинам винчестеры.
5.9 Можно ли получить доступ к данным, находящимся на разделе диска с Windows 98?
5.10 Можно ли читать компакт-диски в формате Jouliet?
6 Работа в сети.
6.1 Расскажите про адреса в TCP/IP.
6.2 Как и где прописать IP адрес машины?
6.3 Хост имеет сетевые интерфейсы, которые оказываются недоступными с самого хоста, хотя доступ к другим хостам есть, например, при отконфигурированном Ethernet-адаптере с адресом 192.168.10.1/255.255.255.0 невозможно выполнить ping 192.168.10.1 с хоста, но прекрасно выполняется ping 192.168.10.2 на другой хост в сети.
6.4 Два хоста соединены по протоколу SLIP. При тестировании соединения утилита ping дает 100-процентное прохождение пакетов, однако telnet дает следующую диагностику: connected to host ... connection timeout.
6.5 Необходимо организовать выход в Internet через один IP-адрес, расположенный на маршрутизаторе, без использования proxy
6.6 Какие имеются продукты для диагностики/управления сетью на основе протокола SNMP?
6.7 Как "подслушать" обмен на некотором порту?
6.8 Что такое DHCP?
6.9 Что значит сообщение 'not allocate buffer' при работе утилиты ping?
6.10 Как организовать несколько IP-адресов на одном интерфейсе?
6.11 Машина с Samba медленно появляется в сетевом окружении Win95.
6.12 Неожиданно умирают все даемоны samba, кроме подключенных.
6.13 Как заставить samba правильно выдавать объем оставшегося дискового пространства?
6.14 Как подключить компьютеры Macintosh к FreeBSD?
6.15 При создании мелких файлов на сервере samba дисковое пространство уменьшается на 64 Кб. Почему так?
6.16 Как увеличить скорость работы samba?
6.17 Хотя в smb.conf указано workgroup = MYGROUP, в сетевом окружении машина все равно находится в группе WORKGROUP.
6.18 Странности при работе samba и DNS.
6.19 Возможно ли ограничение пропускной способности сетевого интерфейса для некоторого IP-адреса/сети, как это сделано в Cisco (interface shaping).
6.20 Как в брандмауэре оставить только один сервис, скажем, исходящий pop3 на 110 порт?
6.21 После настройки брандмауэра все перестало работать.
6.22 Почему при передаче файла по FTP скорость записи гораздо ниже скорости чтения?
6.23 Как сконфигурировать брандмауэр?
6.24 Является ли PPP-соединение отдельным сетевым сегментом?
6.25 При PPP/SLIP соединении является ли модем аналогом сетевого адаптера?
6.26 Могут ли разные сетевые интерфейсы на одной и той же машине иметь один и тот же IP-адрес?
6.27 Какой тип PPP - user level или kernel предпочесть?
6.28 Как настроить named, чтобы он являлся primary для некоторого домена xxx.ru?
6.29 Как настроить named, чтобы он обращался к информации DNS к DNS провайдера, а не непосредственно к DNS, содержащим соответствующие зоны?
6.30 Как настроить named, чтобы он являлся primary для некоторой IP-сети?
6.31 Как настроить брандмауэр, чтобы закрыть доступ к DNS из Internet?
6.32 Как настроить named, чтобы он не выдавал информацию о некоторых зонах (например, обратных для приватных сетей) в Internet?
6.33 Как настроить DNS?
6.34 Что значат значения Ierrs и Oerrs в выдаче программы netstat -i?
6.35 Как бороться с самовольным присвоением пользователями чужого IP адреса?
6.36 Как работать с ICQ из сети с Intranet-адресами?
6.37 Как настроить брандмауэр для работы Microsoft NetMeeting?
6.38 Чем отличается socks5 от socks4?
6.39 Как настроить socks5 для работы с ICQ?
6.40 Что такое dummynet?
6.41 Как сделать VPN?
6.42 Каким образом можно получить доступ к дискам Novell Netware?
6.43 Где взять MultiSlip, позволяющий организовать SLIP-соединение с использованием нескольких каналов связи?
6.44 Подскажите общедоступные российские серверы для синхронизации времени по протоколу NTP.
6.45 Как подключить рабочую станцию Windows95 к FreeBSD по протоколам SLIP/PPP через нуль-модем или выделенный канал связи?
6.46 Как использовать возможности сетевой печати на принтерах HP с адаптером JetDirect?
6.47 Samba работает некорректно с русскими именами файлов.
6.48 Где взять драйверы для сетевых адаптеров ArcNet?
6.49 Чем отличается samba от rumba?
6.50 Каким образом можно получить доступ к дисковым ресурсам Windows/Windows NT?
6.51 При работе с NFS недоступность сервера вызывает блокирование работы с сетевым диском, выполнение команд df занимает вечность.
6.52 Как должен выглядеть файл pap-secrets для авторизации пользователей только из учетной базы пользователей?
6.53 Не работает функция gethostbyname.
6.54 Как использовать возможности socks5?
6.55 Каким оборудованием можно соединить две сети по выделенным 2-х или 4-проводным медным каналам связи и какую скорость можно при этом получить?
6.56 Как настроить pppd для работы по выделенному каналу?
6.57 Как настроить протокол IPX?
7 Администрирование.
7.1 Система отвергает все попытки входа привилегированным пользователем по протоколу telnet.
7.2 Необходимо (может быть, временно) дать права на выполнение некоторой операции, обычно разрешенной только привилегированному пользователю (скажем, изменение учетной базы пользователей или монтирование компакт-диска), не раскрывая пароль привилегированного пользователя.
7.3 Свежеустановленная система FreeBSD 2.2.2-RELEASE при входе привилегированным пользователем выдает сообщение: login_getclass: unknown class 'root'
7.4 Необходимо определенному пользователю обеспечить доступ по протоколу FTP в его личный каталог, не допуская при этом возможности работы в режиме командной строки.
7.5 Необходимо автоматически отключать пользователя по достижении им определенного периода бездействия (IDLE).
7.6 Как прервать работу пользователя, зашедшего в систему по telnet или ftp?
7.7 При входе в систему выдаются различные надоедающие сообщения. Как от них избавиться?
7.8 Как сделать дополнительные консоли?
7.9 Как организовать печать на лазерном принтере?
7.10 Как русифицировать консоль FreeBSD?
7.11 Как организовать приём/передачу факсов с клиентских машин под Windows95?
7.12 Как настроить дисковые квоты?
7.13 Некорректно отображаются русские буквы "пряс" на консоли.
7.14 Как настроить FreeBSD для работы с провайдером по выделенному телефонному каналу?
7.15 Нужна утилита для непосредственной работы с /var/log/wtmp, просмотра, удаления и добавления записей.
7.16 Как организовать учёт/ограничение трафика между локальной сетью и Internet? Какие утилиты есть?
7.17 Как организовать автоматический запуск некоей программы на одной из виртуальных консолей?
7.18 Как запустить некое программное обеспечение для Linux под FreeBSD?
7.19 Ограничение трафика не влияет на ftpget из поставки squid.
7.20 Какую скорость ограничивают delay-pools в squid?
7.21 Хочется сделать тупой терминал, который при включении слушает определенный коммуникационный порт.
7.22 Перестали находиться динамические библиотеки типа libX11.so.6.1, хотя в каталоге /usr/X11R6/lib они есть.
7.23 Что такое DoS?
7.24 Как организовать печать текстовых документов?
7.25 Как полностью перегенерировать систему и перейти на новую версию?
7.26 При работе squid не кэшируются html-страницы, хотя их содержимое не менялось.
7.27 Как правильно ограничивать трафик в squid?
7.28 Не выполняется команда fastboot.
7.29 Как через CVSup скачать исходные тексты системы?
7.30 Как полностью перегенерировать систему?
7.31 Можно ли удаленно произвести обновление FreeBSD с версии, скажем, 2.2.5 до версии 2.2.8?
7.32 Как из скрипта организовать выкачку документа через прокси-сервер?
7.33 Как запретить доступ к tftpd от определенных хостов (или разрешить только некоторым)?
7.34 Как настроить locale для кодовой страницы CP1251?
7.35 Как подключить UPS так, чтобы выполнялся shutdown?
7.36 В чем разница между аутентификацией и авторизацией?
7.37 На определённое время (на ночь) нужно отключать прямой доступ в Internet у нескольких подсетей. Как это сделать?
7.38 Как организовать прозрачный для пользователей кэширующий сервер доступа в Internet?
7.39 Поделитесь методами учета пользователей для мелкого провайдера?
7.40 Как организовать размещение подкаталогов ftp-сервера на нескольких соседних ftp-серверах?
7.41 При входе через telnet на некоторый хост перестает работать ввод русских букв, вместо них пишется соответствующая латинская, хотя вывод работает нормально.
7.42 Как перенести учетную базу пользователей со старой машины на свежеустановленную систему?
7.43 Дайте примеры рабочей конфигурации для sudo.
7.44 Возможно ли создать процесс, невидимый для ps?
7.45 Как избежать вывода дат на русском языке?
7.46 Как ограничить количество одновременных входов в систему определенным пользователем?
8 X Window System.
8.1 Невозможно запустить X server с диагностикой xf86OpenSyscons: Cannot open /dev/ttyvX (No such file or directory)
8.2 При запуске Russian Winword под эмулятором Wine невозможно прочесть текст в кодировке CP1251.
8.3 Как русифицировать X Window System?
8.4 Хочется удобный переключатель рус/лат как в Win95.
8.5 Как сделать хранитель экрана в X Window System?
8.6 Нужен ftp-клиент для X Window System с докачкой.
8.7 Не получается одновременная работа moused и X Window System.
8.8 Программа xlock не принимает пароль пользователя.
8.9 Что такое xrus и зачем он нужен?
8.10 Не работает ввод русских букв в xterm, запущенном на локальной консоли в XFree86.
8.11 Не выполняется вход в X Window System. После запроса имени пользователя и ввода правильного пароля ничего не происходит.
8.12 Работает ли XFree86 с адаптером Banshee?
9 Прикладное программное обеспечение.
9.1 Где взять ПО для FreeBSD?
9.2 Как лучше ставить приложения - из портов или из пакаджей?
9.3 Не получается деинсталлировать некий пакадж, так как он используется парочкой других пакаджей.
9.4 Пакаджи находятся на FAT-разделе диска, естественно, с обрезанными именами файлов. Необходимо произвести инсталляцию.
9.5 Каталог с портами находится в разделе, доступном только для чтения (например, диск NFS). Как компилировать приложения, не переписывая содержимое каталогов с портами?
9.6 После установки нового программного обеспечения (как посредством утилиты pkg_add в FreeBSD, так и простого переписывания бинарников в соответствующие каталоги), система отказывается его запускать, хотя каталоги включены в маршрут поиска.
9.7 Плохо ставятся пакаджи из sysinstall, хотя при ручном их добавление pkg_add все нормально.
9.8 Каков формат файла паролей WWW сервера apache?
9.9 Чем шифровать пароли для пользователей WWW сервера apache?
9.10 Необходимо задействовать мышь в приложениях, запускаемых на консоли и использующих протокол gpm (например, Midnight Commander).
9.11 Какие SQL сервера есть под FreeBSD?
9.12 Невозможен запуск приложений, предназначенных для FreeBSD 2.2.1 и выше с диагностикой "libc.so.3.0"
9.13 Необходима утилита командной строки для ftp, для фоновой выкачки файлов.
9.14 Есть ли проблемы с безопасностью у www/apache?
9.15 Можно ли сделать из FreeBSD сервер Netware?
9.16 Посоветуйте ПО списка рассылки.
9.17 Q. Как заставить работать StarOffice 4.0 для Linux под FreeBSD?
9.18 Программы, использующие библиотеку libvgl и работающие на консоли в графическом режиме, корректно не работают.
9.19 В deco при просмотре файла вместо русских букв - транслитерация.
9.20 Как русифицировать виджеты в Netscape Navigator 4.5?
9.21 Что случается с trial-версией после истечения срока бесплатной эксплуатации Oracle8 (90 дней)?
9.22 Присоветуйте божеский текстовый редактор.
9.23 Где взять серверную часть игры Quake?
9.24 Как установить Oracle SCO/Linux на FreeBSD?
9.25 Требуется сделать систему автодозвона с передачей голосовых сообщений.
9.26 В Netscape Communicator 4.5 черно-белые кнопки.
9.27 Какое программное обеспечение FTN можно использовать?
9.28 Какого ftp-клиента для Win95 посоветуете?
9.29 В редакторе vi русские символы вводятся как коды типа \xf3\xe1\xed\xef.
9.30 Есть ли программы, подобные StarOffice/Linux, для FreeBSD?
9.31 В журнале ошибок apache зачастую появляются сообщения о попытках запросить файл robots.txt. Кому и зачем он нужен?
9.32 Каким образом можно организовать доступ к MS SQL?
9.33 Как настроить сервер Quake-2?
9.34 После установки SSL (stunnel) в журнал пишутся сообщения вида: vt stunnel[4737]: SSL_accept: error:00000000::lib(0):func(0) :reason(0) Что означает это сообщение?
9.35 Как правильно сгенерировать сертификат для SSL, чтобы Netscape Navigator и Internet Explorer не выдавали сообщения о том, что это сертификат не с того сайта?
9.36 После перезагрузки squid стал вести себя странно: занял всю виртуальную память, что привело к неработоспособности системы.
9.37 Нужен tftpd, позволяющий создавать файл по команде put, если его нет.
9.38 Не удается заставить webglimpse понимать русские буквы.
9.39 Где найти irc с поддержкой socks?
9.40 Нужны перекодировщики русских текстов.
9.41 Как работает SSI в Apache? Происходит ли обработка SSI во время передачи клиенту или сначала полностью отрабатывают SSI?
9.42 Подскажите набор утилит для разработчика.
9.43 Никогда не смогу научиться работать с редактором vi.
9.44 Какой тип терминала нужен для работы deco, yui, bml и прочих?
9.45 Надоело переключаться на латинские буквы для передвижения курсора в редакторах vi/vim.
9.46 Как в squid отрезать рекламные баннеры?
9.47 Посоветуйте о применяемых методах ограничения доступа к нежелательным сайтам в squid.
9.48 Как русифицировать StarOffice?
9.49 Не работает PostgreSQL, образуя файл core при попытке работать с базой посредством createuser.
9.50 Как организовать на машине с FreeBSD узел сети FidoNet(tm)?
10 Электронная почта и телеконференции.
10.1 Как сделать почтового робота?
10.2 Необходимо иметь клиентов POP3 не заводя их как пользователей.
10.3 Как настроить UUCP?
10.4 Какой порт нужно использовать для исходящих звонков UUCP?
10.5 Как ifcico прикрутить к mgetty?
10.6 Можно ли в INN запретить посылку сообщений в конференции?
10.7 Нужен текстовый клиент для чтения телеконференций.
10.8 Как в sendmail разрешить прием почты от всех машин доменов xxx.ru, yyy.ru и хоста xxx.zzz.ru?
10.9 Чем можно делать статистику почты UUCP?
10.10 Чем можно делать статистику почты sendmail?
10.11 Как сделать виртуальный почтовый сервер?
10.12 После обрыва связи уже забранная почта остается в почтовых ящиках пользователей, поэтому её не удается скачать полностью
10.13 Как правильно перезапустить sendmail?
11 Программирование.
11.1 Как определить порядок следования байтов (BIG_ENDIAN или LITTLE_ENDIAN)?
11.2 В программе порождается много дочерних процессов, часть из которых, завершив свою работу по получению сигнала, остаются как zombie. Как от них избавиться?
11.3 Поделитесь примером драйвера устройства, пожалуйста.
11.4 При чтении из stdin, который на самом деле является последовательной линией связи, читаются не все символы.
11.5 Нужен cgi-скрипт для отслеживания доступности хоста.
11.6 Как подсчитывается CRC32?
11.7 Как передать данные из формы в вызываемый CGI-скрипт, написанный на shell?
11.8 Как пеpеназначить в файл, в сокет или в конвейер вывод пpоцесса, запyскаемого по exec() ?
12 Разное.
12.1 Где взять эмуляторы терминала cons25r для DOS/Win95/WinNT?
12.2 Нужна клиентская часть ssh для Win95.
12.3 Какой формат должен иметь звуковой файл для его воспроизведения командой типа cat myfile.audio > /dev/dsp ?
12.4 Посоветуйте сценарий празднования Нового Года.
12.5 Какие годы являются високосными, а какие - нет?
12.6 Где можно найти изображения даемонов BSD?
12.7 Где можно найти бесплатный доступ к shell?
12.8 Кто такой Луиджи?
12.9 Почему во FreeBSD русификация стандартно сделана через scrnmap из koi8-r в cp866, а не непосредственно koi8-r?
13 Наши благодарности

Chapter 1 Введение. Общие сведения.

1.1 Где можно найти информацию о FreeBSD?

Основным источником информации об этой системе являются официальный сайт FreeBSD, конференции Usenet comp.unix.bsd.freebsd.announce и comp.unix.bsd.freebsd.misc. В сети FidoNet(tm) имеются русскоязычные конференции RU.UNIX.BSD и RU.UNIX, в которых обсуждаются вопросы, связанные с работой FreeBSD и UNIX(r) вообще. Эти конференции доступны через Usenet как relcom.fido.ru.unix.bsd, fido7.ru.unix.bsd и relcom.fido.ru.unix, fido7.ru.unix соответственно. Ответы на некоторые вопросы можно также найти в конференциях FidoNet(tm) RU.LINUX и RU.UNIX.LINUX, также доступные через Usenet как relcom.fido.ru.linux, fido7.ru.linux и fido7.ru.unix.linux соответственно.

Обратите внимание на сервер Ассоциации Русскоязычных Пользователей FreeBSD, располагающийся по адресу http://www.freebsd.org.ru/.

Кроме того, существует ряд русскоязычных серверов, посвящённых ОС UNIX(r) вообще и FreeBSD в частности. Вот некоторые из них:


1.2 Чем FreeBSD лучше, чем Linux?

Во FreeBSD логотип - симпатичный чертёнок (вернее, даемон - нечто вроде личного демона, обязанного помогать своему владельцу и к силам зла отношения не имеющего) с вилами, а в Linux - (глупый) пингвин (робко прячет тело жирное), что достаточно пошло и совсем не круто ;)


1.3 В чём разница между 2.2.8-RELEASE и 3.0-RELEASE?

2.2.8-RELEASE является последним релизом в ветви 2.2-stable. Считается, что 3.0-RELEASE - всё ещё экспериментальный релиз, а 2.2.x - стабильный, проверенный временем, однако с некоторыми принципиальными недостатками (например, работа VM). Есть мнение, что FreeBSD 2.2.8 предпочтительней ставить на сервер, а 3.0-RELEASE - на рабочие станции (правда, хорошо подумав ;)

Основные изменения по сравнению с предыдущим релизом описываются в файле RELNOTES.TXT, который находится в корневом каталоге дистрибутива соответствующей версии FreeBSD, например, для 3.0-RELEASE, этот файл находится по адресу ftp://ftp.freebsd.org/pub/FreeBSD/3.0-RELEASE/RELNOTES.TXT.

Что нового в 3.0-RELEASE:

  • переход на формат ELF

  • поддержка вызова poll() вместо select()

  • новый подход к дисковой подсистеме - через CAM

  • улучшена работа с APM - на материнских платах ATX можно отключить кнопку выключения питания и выключать компьютер командой halt -p .

  • много чего ещё ;)




1.5 Что такое форматы ELF и A.OUT?

Это форматы объектных файлов, которые используются в большинстве UNIX-систем. Наиболее совершенным считается ELF. Так как в настоящее время поддержка формата a.out потихоньку отмирает (например, в стандартных GNU-утилитах), то FreeBSD перешла на формат ELF, начиная с версии 3.0-RELEASE. Полностью в формате ELF (то есть и ядро тоже) работает 3.1-RELEASE.


1.6 Как самому сделать компакт-диск с дистрибутивом FreeBSD?

  1. Первым делом нужно сделать зеркало официального каталога с соответствующим релизом FreeBSD, например, взяв ftp://ftp.gamma.ru/pub/FreeBSD/3.2-RELEASE. Зеркало нужно делать с сохранением регистра всех файлов, поэтому это лучше делать из-под FreeBSD утилиткой, поддерживающей зеркалирование, типа lftp.

    Нужно зазеркалировать каталоги bin, catpages, compat1x, compat20, compat21, dict, doc, flopppies, games, info, manpages, ports, proflibs, src, XF86333, tools, а также взять файлы в корне каталога с релизом (*.TXT, *.inf). Каталог des брать не следует, так как он содержит программное обеспечение, запрещённое к использованию вне пределов США. Кроме того, вы можете взять дополнительные программы из каталогов xperimnt и commerce.

  2. Всё выкачанное складывается в один каталог, скажем, /usr/cd, так же, как и на официальном мирроре (то есть файл cdrom.inf должен находиться в каталоге /usr/cd). Обратите внимание, что общий размер не должен превышать 650 Мб (325000 extents), максимум 330000 extents.

  3. Во FreeBSD нужно установить порт (или пэкидж) sysutils/mkhybrid

  4. Выполняем команду # mkhybrid -b floppies/boot.flp -h -r -J -o cdimage.iso usr/cd/ -b Бутявый сидюк получается, круто :-) -h гибридный имедж (чтоб и под МастДаем читались длинные имена) -r Generate Rock Ridge + что то там полезное делает с пропертями файлов -J Generate the Joliet extensions (расширение МастДая) -o имя имеджа, в который будет все енто хозяйство литься.

на P-233 имедж собирался порядка 20 мин ... (при сборке имеджа выскочило пару строк, что имена длинные в пакаджах, штуки 4-5, ему не понравились, и он их отрезал, ну там очень много точек было) 5) Берешь потом ентот имедж, и нарезаешь его откуда хошь, можно доже из под МастДая ... EasyCDCreator-ом... (что и было сделано в моем случае) 6) Бежишь за пивом/водкой/вином (нужное подчеркнуть), и все енто дело обмываешь!


1.7 Расскажите, как произвести постепенне обновление системы без полной переустановки системы?

Вот последовательность действий: 1. pkg_add ftp://ftp.freebsd.org/pub/FreeBSD/CVSup/cvsupit.tgz 2. Say yes to everything except to do the Update and the firewall, ports as you wish... 3. vi /etc/cvsupfile 4. change RELENG_2_2 to RELENG_2_2_6_RELEASE 5. cvsup -L 2 -g /etc/cvsupfile 6. cd /usr/src 7. make world (do not reboot afterwards, this takes a long time). 8. backup /etc/ (cd /etc; tar cvf /tempdir/etcback.tar) 9. cd /usr/src/sys/i386/conf 10. cp GENERIC MYKERNEL (your kernel) 11. vi MYKERNEL (edit as desired) 12. config MYKERNEL 13. cd ../../compile/MYKERNEL 14. make depend; make; make install 15. cd /usr/obj/etc (not sure on this one, pulling from memory) 16. rm master.passwd, group, rc.conf (look at this one and merge where necessary), and whichever other files you have modified. 17. copy to /etc the rest (with subdirectories). 18. vi /etc/fstab 19. change wd0a to wd0s1a 20. reboot the beast


1.8 Как при обновлении дерева CVS с помощью cvsup исключить, скажем, подкаталоги, содержащие иноязычную документацию, недоступную для понимания?

В файл sup/refuse добавьте строчку вида doc/es* doc/ja* doc/zh* Для коллекции портов нужно исключить каталоги ports/chinese, ports/german, ports/japanese, ports/korean, ports/vietnamese.


1.9 Где и какую литературу по UNIX можно купить?

  • Фирма "ФольКом-Книга" представляет в Москве многие известные издательства (O'REIILY, Prentice Hall, etc):

    ассортимент богатый, довольно много книг по тематикам: UNIX, TCP/IP, X Window System.

    цены издательские, такие же как у компании Prentice Hall.

    есть возможность заказать книги по каталогу _без_предоплаты_! (что я и сделал)

    народ там работает очень приятный и обходительный

    Их телефон: 251-4504 Адрес: 1-я Тверская-Ямская, дом 2 строение 1. Метро Маяковская, здание, где ресторан "София", с обратной стороны. Белая дверь, рядом вывеска редакции журнала "Юность". Второй этаж, дверь налево. Телефон-факс - 251-4504.

    Имеется веб сервер: http://www.telekom.ru/elvis-telecom/rus/volcom-book/index.html и адрес электронной почты: books@volcom.msk.ru


1.10 В чем разница между {Free|Net|Open}BSD?

Обзор этих операционных систем, кроме соответствующих официальных серверов ( http://www.FreeBSD.org/, http://www.netbsd.org/ и http://www.openbsd.org/), можно найти по адресу http://www.osp.ru/os/1997/03/37.htm на сервере издательства "Открытые системы".


Chapter 2 Установка.

2.1 Как автоматизировать процесс установки FreeBSD, скажем, на несколько однотипных машин?

В файле /usr/src/release/sysinstall/install.cfg находится конфигурация начальных параметров инсталляционной программы. Вам нужно сгенерировать установочный диск.


Chapter 3 Ядро. Компиляция, диагностика, настройка. Устройства.

3.1 Что вообще можно сконфигурировать?

В файле /sys/i386/conf/LINT содержится все, что вообще можно менять при построении ядра.


3.2 Как в конфигурационном файле ядра описываются стандартные диски?

Вот так: controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr disk wd0 at wdc0 drive 0 disk wd1 at wdc0 drive 1 controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr disk wd2 at wdc1 drive 0 disk wd3 at wdc1 drive 1 options ATAPI #Enable ATAPI support for IDE bus options ATAPI_STATIC #Don't do it as an LKM device wcd0 #IDE CD-ROM


3.3 Что означает сообщение /kernel: stray irq X?

Оно появляется в случае, когда существует устройство, не описанное в конфигурационном файле ядра. Например, не описано устройство lp0. Может быть, что в BIOS разрешен второй контроллер. Достаточно либо добавить устройство в конфигурацию ядра либо отключить его в BIOS или физически.


3.4 Что означает сообщение /kernel: ed0: device timeout?

Это сообщение значит, что в течении некоторого времени сетевому адаптеру не удалось осуществить передачу или потеряна связь с хабом.

Возможные причины: 1) Неполадки в кабельном хозяйстве, неправильно (или неплотно) вставлен сетевая розеточка, болтается коннектор в разъеме, терминатор не терминирует ;) Хаб выключен. Если компьютер не подключен к сети, оденьте терминатор на сетевой разъём. При работе с коаксиалом довольно часто пользователи дергают провода и обрывы возникают. Незаземленный компьютер выдает нагрузку на коаксиал (особенно при включении/выключении) - целый сегмент работает со сбоями. 2) Неправильно задано прерывание при описании адаптера в конфигурационном файле ядра. 3) Такое частенько возникает при использовании адаптеров типа Compex RL2000A ISA на машине с процессорами AMD.


3.5 Что означает сообщение free inode /var/xxx/yy had XXXXX blocks?

Такое сообщение появляется на разделах с недостаточным количеством inode, например, содержащем сервер конференций. Нужно увеличить количество inode для системы.


3.6 Что означает сообщение /kernel ed1: promiscious mode enabled?

Это значит, что сетевой адаптер был переведен в режим, при котором он будет принимать пакеты, предназначенные не только ему, но и все, проходящие по сети. Режим включается при запуске утилит типа tcpdump или trafshow (и выключается при корректном завершении их работы.

Если вы не запускали подобные утилиты, то скорее всего, злобные кракеры уже заломали вашу машину и запускают сниффер на соответствующем интерфейсе.

При запуске утилиты trafshow с ключом -p этот режим не включается.

Обратите внимание, что при работе с активным сетевым оборудованием, типа Catalyst или LinkBuilder, имеется возможность запрета прохождения _всего_ трафика на сетевой адаптер, то есть даже в этом режиме сетевой адаптер ничего, кроме пакетов, адресованных ему, от него, запросов ARP, мультикаста, широковещательных, не увидит.

Чтобы запретить перевод сетевого адаптера в этот режим, нужно исправить/убрать в драйвере адаптера ioctl, реализующий этот режим, либо изменить настройки активного сетевого оборудования для этой машины. Можно также изменить ядро следующим образом: /usr/src/sys/net/if.c: ifp->if_flags = (ifp->if_flags & IFF_CANTCHANGE) | - (ifr->ifr_flags &~ IFF_CANTCHANGE); + (ifr->ifr_flags &~ (IFF_CANTCHANGE | IFF_PROMISC));

Для того, чтобы ядро сообщало и об отключении этого режима, нужно в файле /usr/src/sys/net/if.c в функции ifpromisc(ifp, pswitch) строчку log(.. mode enabled ..) скопировать чуть пониже, исправив комментарий.


3.7 Что означает сообщение /kernel: sioX: Y more silo overflow (total Z)?

Такие сообщения появляются, когда некий процесс не успевает считывать буферы приема от коммуникационного адаптера, как правило, на медленных машинах при работе "тяжелых" приложений типа X-сервера или при завышенной скорости обмена с последовательным портом. Проблема решается увеличением внутренних буферов ядра, на предмет чего существовал патчик, который стоит поискать в списках рассылки по ключевому слову silo overflow. Вообще это сообщение никаких сторонних эффектов не вызывает.

Попробуйте исправить файл /sys/i386/isa/sio.h следующим образом: #define RB_I_HIGH_WATER (TTY_HOG / 2) #define RS_IBUFSIZE (TTYHOG / 4) и в файл конфигурации ядра добавить: options "MSIZE=256" options "TTYHOG=4096"

Другой причиной может быть конфликт IRQ, который занимает коммуникационный адаптер (или внутренний модем) с каким-то оборудованием. Рекомендуется ставить стандартные значения IRQ для последовательных портов, то есть 4 и 3 для sio[02] и sio[13] соответственно.

Также может быть, что микросхема UART распознается некорректно, например, 16450 вместо 16550A, что влияет на количество буферов FIFO.


3.8 Как запретить перезагрузку машины по нажатию клавиш Ctrl-Alt-Del?

Добавьте в файл конфигурации ядра следующую строку: options SC_DISABLE_REBOOT # disable reboot key sequence


3.9 Откуда берётся число #XX в выводе команды uname типа FreeBSD 3.0-CURRENT #18 Mon Dec 7 11:21:27 MSK 1998?

Это число перекомпиляций ядра (вернее, перекомпиляций без удаления каталога /sys/compile/CONFIG). Оно хранится в файле /sys/compile/CONFIG/version. При выполнении команды config CONFIG этот файл либо стирается (в версиях FreeBSD до 3.0), либо число в нем увеличивается. Обратите внимание также на ключи -n (в версиях FreeBSD до 3.0-RELEASE) и -r (3.0-RELEASE и выше).


3.10 Как избавиться от сообщений ядра, постоянно выводимых на терминал?

Сообщения ядра выводятся на терминал, на которых работает пользователь root. Поэтому прежде всего прекратите работать как root (root is lame), заведите для обычной работы обычного пользователя, а в случае необходимости выполняйте команду su. Также посмотрите файл /etc/syslog.conf, в котором описано, куда будут направляться сообщения ядра.


3.11 Что такое LKM и KLD?

LKM - Kernel Loadable Module, KLD - Kernel Loadable Driver - подгружаемые модули ядра. LKM предназначен для 2.2.x и 3.x (ядро a.out), KLD для 3.x (ядро elf). Некоторое время назад было принято решение об отказе от LKM в пользу KLD. Посмотрите страницы справочника по команде modload.


3.12 Что означает число X при выполнении команды MAKEDEV ttyvX?

Это число обозначает количество устройств, то есть для создания устройств для виртуальных терминалов с /dev/ttyv0 по /dev/ttyv6 включительно, нужно выполнить команду MAKEDEV ttyv7.


3.13 Что означает сообщение file: table is full?

Оно означает, что в системе слишком много открытых файлов.

Ограничения, качающиеся работе с файлами, можно посмотреть в системных переменных ядра kern.maxfiles и kern.maxfilesperproc по команде sysctl -a | grep 'maxfile'. Командой pstat -T можно посмотреть количество файлов, открытых в данный момент.

Чтобы избавиться от этого сообщения, нужно увеличить значение параметра maxusers в конфигурационном файле ядра. При значении этого параметра, равном 30, можно открыть до 1000 файлов, обычно открыто около 500.


3.15 FreeBSD зависает при перезагрузке по команде reboot. с диагностикой 'syncing disks... done Rebooting...' либо 'syncing disks... done Rebooting... Keyboard reset did not work, attempting CPU shutdown'.

Обычно перезагрузка выполняется через клавиатурный порт. Однако на некоторых материнских платах он работает некорректно, поэтому применяются другие способы.

В конфигурационный файл ядра нужно включить такую строку:

options BROKEN_KEYBOARD_RESET


3.16 Что значит сообщение /usr: optimization changed from SPACE to TIME?

Это сообщение означает, что алгоритм размещения файлов в фаловой системе был сменен с оптимизации по объему на оптимизацию по времени доступа. Более подробная информация может быть найдена на страницах Справочника по newfs и tunefs.


Chapter 4 Аппаратное обеспечение.

4.1 Какое аппаратное обеспечение поддерживается FreeBSD?

Список аппаратного обеспечения, с которым может работать FreeBSD, находится в файле HARDWARE.TXT корневого каталога дистрибутива соответствующей версии FreeBSD, например, ftp://ftp.freebsd.org/pub/FreeBSD/2.2.8-RELEASE/HARDWARE.TXT.


4.2 Будет ли FreeBSD работать на 386DX с винчестером 1.5Гб?

Да. Памяти должно быть около 8 мегабайт (и выше). BIOS может и не поддерживать LBA (есть работающий вариант с винчестером 1.02Гб).


4.4 Поддерживаются ли устройства PnP?

Да, но их поддержка включена в систему начиная только с FreeBSD 3.0-RELEASE.


4.5 Поддерживается ли адаптер dbs-100 от Iwill с набором микросхем Adaptec 7895?

Да, начиная с 3.0-RELEASE. Драйвер должен быть сделан по стандарту CAM, последние версии таких драйверов находятся в каталоге ftp://ftp.freebsd.org/pub/FreeBSD/development/cam.


4.6 Поддерживаются ли сетевые адаптеры семейства 3Com EtherLink 3c90X?

Адаптер 3c90x поддерживается FreeBSD начиная с версии 2.1.6, устройство называется vx.

Адаптеры семейства 3Com 3c905B Fast Etherlink XL, a именно:

  • 10/100BaseTX

  • 10/100BaseT4

  • 10/100BaseFX/SC

поддерживаются начиная с FreeBSD 2.2.8-RELEASE, устройство называется xl.

Для более старых версий FreeBSD можно попробовать поставить драйвера, взяв их на домашней странице разработчика по адресу http://www.freebsd.org/~wpaul/3Com/.

Заметьте также, что начиная с некоторой 2.2-stable некоторые адаптеры, опознававшиеся как устройства vx, распознаются как xl.


4.7 Поддерживается ли сетевой адаптер Compex RL2000/Realtek RE2000 PCI?

Да. В конфигурационном файле ядра достаточно описать ее как "device ed?" Однако по существу - это старый добрый NE2000, только для шины PCI. Карты Compex не славятся сильным BNC трансивером, хотя старые модели работают прекрасно. Хорошо работает FL32PnP (с чипом DEC21041). http://www.compex.com.sg/


4.8 Какой сетевой адаптер предпочесть: 3Com 3C509B TX или Intel EtherExpress?

Считается, что Intel EtherExpress (fxp0) работает _очень_ хорошо, в то время как драйвер для 3Com (xl0) появился совсем недавно.

В машине ftp.cdrom.com стоит именно адаптер Intel EtherExpress Pro 10/100B. Утверждается, что при его использовании достигается наименьшая загрузка процессора.

Имеются сообщения, что Intel EtherExpress плохо ведет себя (пропадание интерфейса, не выполняется fastboot) при скорости 10Mbit на материнских платах от Intel (Модели Эндевер и Марл), на ASUS все нормально. Также на материнской плате Intel Atlantis.


4.9 Какие многопортовые сетевые адаптеры поддерживаются?

Такие адаптеры делаются, как правило, на наборах микросхем от фирмы DEC - Digital 21x4x. Такие адаптеры производят фирмы ZNYX ZX314 10Mb (www.znyx.com) на 4 порта и SMC (www.smc.com). После покупки фирмы Cogent фирма adaptec должна производить такие адаптеры.

Стоят они несколько дороже, но позволяют сэкономить PCI-слоты на материнской плате (скажем, обеспечить 16 портов ethernet при 4 слотах PCI :).

Устройство на основе набора микросхем от DEC называется de. Есть мнение, что они одни из самых производительных.


4.10 Поддерживается ли Digiboard?

Да. Модели: PC/Xe 8/xe. В ядре нужно прописать устройство dgb0, а после перекомпиляции ядра создать устройства ttyD01..ttyD07. Однако по отзывам, драйвер работает недостаточно стабильно - наблюдается потеря данных при большой нагрузке. В системе BSD/OS 2.1 эти адаптеры работают нормально.


4.11 Печать на принтер, подключенный непосредственно к машине, происходит очень медленно, с большими паузами.

В настройке BIOS установите явно адреса ввода-вывода параллельного порта (зачастую в BIOS на PCI/PnP материнских платах он определен как AUTO).


4.12 Как использовать Zip-Drive на параллельном порту?

Информация о поддержке Zip находится на сайте http://www.prism.uvsq.fr/~son/ppa3.html. Версия 0.40 этого драйвера работает на FreeBSD 2.1.6, хотя достаточно медленно.


4.13 Поддерживается ли режим LBA?

Да. Начиная с 3.0. В более ранних версиях системы требуется, чтобы корневая файловая система не выходила за пределы 1024 цилиндра. Есть сообщения об успешной эксплуатации диска размером 2.5Гб, на котором начальные 800Мб занимает файловая система NTFS.


4.14 Можно ли подключить звуковой адаптер Sound Blaster AWE32?

Да. Рекомендуется воспользоваться драйверами из комплекта Open Sound System на сервере http://www.4front-tech.com/


4.15 Какие типы RAID-контроллеров поддерживаются?

Полная информация о поддерживаемых контроллерах RAID имеется на странице Майка Смита (Mike Smith) по адресу http://people.freebsd.org/~msmith/RAID/.


4.16 Поддерживаются ли SCSI RAID-контроллеры от Compaq?

Экспериментальный драйверы для таких контроллеров можно найти на страничке Майка Доусона (Mike Dawson) по адресу http://www.doc.ic.ac.uk/~md/ida/.


4.17 Какие многопортовые коммуникационные адаптеры можно без проблем использовать с FreeBSD?

Адаптеры от фирмы Cronyx всех видов (синхронные и асинхронные) имеют драйверы для 3.0. Дешёвые асинхронные мультипортовки - Moxa. Асинхронные адаптеры также производит фирма Zelax. Можно также найти Specialix SI 8 port.


4.18 Какие сетевые адаптеры на наборе микросхем фирмы DEC можно использовать?

Работают адаптеры Compex (устройство de). Вообще там чипсет 21140, 21142, 21143. У Compex есть адаптеры на разных чипах с одинаковым названием. Для 21041 нужно жестко указывать mediaoption на 10BaseT.


4.19 На каких серверах серии HP Netserver работает FreeBSD?

Есть сообщения о нормальной работе: 2.2.8-RELEASE на HP NetServer E45 PII/266


4.21 Допускает ли FreeBSD загрузку из BootROM?

Да. В поставку FreeBSD входит несколько прошивок для разных типов сетевых адаптеров. Для бездисковой загрузки нужен работающий NFS-сервер. В Handbook описана процедура конфигурации такой рабочей станции.


4.22 Какой звуковой адаптер лучше использовать?

Почитайте рекомендации в файле /sys/i386/isa/sns/CARDS

Есть положительные отзывы о: A/Open AW35 Pro на чипсете CS4327 (без MIDI) GUS MAX (без PnP) AWE64 PnP Подходит любая, хорошо давящая шумы шины и Sound Blaster совместимая (SB16). Если адаптер PnP, нужно будет отдельно настроить PnP. Посмотрите также страничку Луиджи. Для PnP адаптера можно сделать так (для ESS1868): controller pnp0 controller snd0 device sb0 at isa? port 0x220 irq 5 drq 1 conflicts vector sbintr либо controller pnp0 controller snd0 device pcm0 однако pcm0 дает сравнительно мало возможностей Посмотрите также на драйвера OSS: http://www.opensound.com/


4.23 Как настроить PnP во FreeBSD?

PnP нормально работает с версии 2.2.6 Устройство pnp0 предназначено только для инициализации устройств. В конфигурационном файле ядра нужно добавить: controller pnp0 Посмотрите на утилиту pnpinfo Правда, PnP устройства нужно буде проинициализировать Boot: -cv pnp святым духом не инициализируется. Загрузи ядро с ключем -c, сконфигури свои pnp-устройства к примеру вот так: pnp 1 0 enable os port0 0x220 port1 0x330 port2 0x388 irq0 5 drq0 3 drq1 5 pnp 1 1 enable os port0 0x200 drq0 4 drq1 4 pnp 1 2 enable os port0 0x620 port1 0xa20 port2 0xe20 drq0 4 drq1 4 Это рабочий вариант для AWE64. Для ESS1868: pnp 1 1 os enable irq0 5 drq0 4 port0 0x220


4.24 Как настроить USR Winmodem?

Это модем A/Open f34, без UART, работает только с Windows(tm). Не имеет джамперов настройки IRQ, под Windows NT не работает без pnpisa.inf на чипсете Rockwell.


4.25 Как связать два компьютера витой парой без концентратора или коммутатора, используя только сетевые адаптеры?

Нужно иметь витую пару со следующей распайкой:

1------------3 2------------6 3------------1 6------------2


4.27 Как работать с Arvid?

Некоторая информация может быть найдена по следующим адресам:


4.28 Какое программное обеспечение нужно для работы со сканером?

В коллекции портов находится sane. Также посетите сайт http://www.sane.org.


4.29 Как узнать, использует ли FreeBSD второй процессор?

Посмотрите на вывод команды top. Можно также запустить пару счетных задач типа газовой динамики.


4.30 Как назначить загрузку по умолчанию со второго винчестера на первом контроллере?

Для этого нужно прописать в файл /etc/boot.config строчку, обычно вводимую при загрузке с клавиатуры:

wd(1,a)/kernel или 1:wd(2,a)/kernel


4.31 Как работать с UPS?

Вам нужно иметь правильно распаянный кабель:

Черный кабель (для Smart-UPS) 2 >-----------------------> 2 3 >-----------------------> 1 5 >-----------------------> 9 G +-----------------------+ G (Общий)

Серый кабель (для Back-UPS) ----------+ 4 >-----------------------> 1 +------------ | 5 >-----------------*-----> 4 | Компьютер | +-----> 9 | UPS RS-232 | 8 >-----------------------> 2 | ----------+ G +-----------------------+ G (Общий) +------------

Программное обеспечение можно найти в следующих местах:

Для FreeBSD имеется несколько программ: upsd - Входит в дистрибутив FreeBSD (см.каталог xperimnt/upsd/) В исходниках, написан под Smart-UPS. Последнюю версию можно взять, например, на ftp://ftp.ww.net/pub/wildwind/upsd. Документация - КРАЙHЕ СКУДHАЯ! PowerFail - Hаписан в МАИ под FreeBSD, продукт КОММЕРЧЕСКИЙ (вроде). В поставке описание установки и бинарник с man-файлом. ups - Hаписан juriy@packet.zaporizhzhe.ua (Juriy S. Krivosheev) под Back-UPS. Можно взять на ftp://ftp.packet.zaporizhzhe.ua smartups - Так же Входит в дистрибутив FreeBSD (см.директорию xperimnt/upsd/) powerfail - Hаписан rac@sherpa.UUCP (Roger Cornelius) 13 May 1990. (pf.tar) Исправлен/дополнен ron@mlfarm.com 7 Mar 1992 В исходниках с Readme и man-файлом. Этот скрипт и другие подобные можно взять на http://www.westnet.com/providers/


4.32 Не работает звуковой адаптер - сообщения Sound: DMA timed out - IRQ/DRQ config error?

Проверьте, что нет конфликтов IRQ например, с принтером (IRQ7).


4.33 Как посмотреть конфигурацию звукового адаптера?

Воспользуйтесь командой cat /dev/sndstat. Ее вывод имеет примерно такой вид:

VoxWare Sound Driver:3.0-beta-950506 (Sun Feb 5 14:38:12 EST 1995 freebsd-hackers@freefall.cdrom.com) Config options: ffffffff Installed drivers: Type 1: OPL-2/OPL-3 FM Type 2: SoundBlaster Card config: SoundBlaster at 0x220 irq 7 drq 1 OPL-2/OPL-3 FM at 0x388 irq 65535 drq 4294967295 Audio devices: 0: SoundBlaster Pro 3.1 Synth devices: 0: Yamaha OPL-3 Midi devices: 0: SoundBlaster Timers: 0: System Timer Mixers: 0: SoundBlaster

4.34 Как описать в ядре звуковой адаптер ESS 688 Audiodrive?

Например, так:

controller snd0 device sb0 at isa? port 0x220 irq 5 drq 1 vector sbintr device opl0 at isa? port 0x388

При загрузке система опознает адаптер следующим образом:

sb0 at 0x220 irq 5 drq 1 on isa sb0: <SoundBlaster Pro 3.1> opl0 at 0x388 on isa opl0: <Yamaha OPL-3 FM>

Chapter 5 Работа с дисками. Файловые системы.

5.1 Возможно ли использование файловой системы Linux, расположенной на одном из дисков того же компьютера, где функционирует FreeBSD?

Да. Для этого нужно: 1) Скомпилировать ядро с опцией options "EXT2FS" 2) Смонтировать раздел командой mount -t ext2fs /dev/linux /mnt/mount Однако при этом существуют проблемы с нормальным закрытием файловой системы при остановке системы.


5.2 Можно ли организовать программный RAID?

Да, с помощью устройства ccd можно сделать из нескольких дисков один большой (RAID-0). При этом может быть достигнуто почти двукратное ускорение работы с диском за счёт распараллеливания операций ввода-вывода.

Кроме того, в поставку FreeBSD 3.1-RELEASE включен vinum - программная реализация RAID-1 (зеркалирование дисков). Согласно странице Справочника, у автора имеется вариант, реализующий и RAID-5, однако из-за лицензионных ограничений он не включён в поставку системы. Подробная информация о vinum располагается по адресу http://www.lemis.com/vinum.html


5.3 Возможно ли зеркалирование дисков?

Да. Читайте руководство по ccd и ccdconfig


5.4 Как сделать длинные имена на разделах DOS?

Попробуйте набор утилит mtools. Начиная с версии 2.2.7 FreeBSD поддерживает VFAT.


5.5 На диске образовался файл гигантского размера, хотя fsck никакой диагностики не выдает.

Образование таких файлов - вполне нормальное явление в BSD, такие файлы являются "дырявыми" и занимают реально, как правило, несколько блоков файловой системы. Посмотрите, что выдаст команда du файл

Избавиться можно, стерев файл (либо поредактировав его, уничтожить пустое место).

Такой файл может создать программа quotacheck на большом (4Гб) разделе. Избавиться от этого можно, отключив квотирование дискового пространства.


5.6 Что означает флаг noexec для файловой системы?

Он значит, что даже при наличии прав rwxr-xr-x на файл, запустить его с этой файловой системы будет невозможно. Это делается на случай файла с правами rwsr-xr-x и владельцем root.


5.7 Как управлять различными режимами работы винчестера IDE?

В файле конфигурации ядра обратите внимание на flags.

Попробуйте поставить следующие значения:

  • 0x80FF

  • 0xA0FF - C/H/S, DMA

  • 0xB0FF - LBA, DMA




5.8 "Сыпятся" по непонятным причинам винчестеры.

Некорректная работа с PCI контроллером IDE бывает на чипсетах от VIA. Это исправлено в 3.1-RELEASE.

Не рекомендуется выставлять дополнительные флаги для работы с DMA и 32-разрядным доступом драйверу wd на таких материнских платах.


5.9 Можно ли получить доступ к данным, находящимся на разделе диска с Windows 98?

Да. Поддержка FAT32 появилась, начиная с FreeBSD 2.2.7. Смонтировать можно, например, командой

mount -t msdos /dev/раздел_с_Windows /mnt

Более подробную информацию можно получить из страницы справочника по mount_msdos.


5.10 Можно ли читать компакт-диски в формате Jouliet?

Да, но только начиная с FreeBSD 2.2.7


Chapter 6 Работа в сети.

6.1 Расскажите про адреса в TCP/IP.

Как (не) все знают, IP адрес занимает 4 байта и разделяется на номер сети и номер хоста в ней. Адрес сети - это число, остающееся от IP адреса, после наложения на него AND'ом маски сети (netmask). Hапример: Адрес: 11000000 10101000 00000000 00000000 Маска: 11111111 11111111 11111111 00000000 Адресуют сеть 192.168.0.0 (это одна из зарезервированных сетей) Все номера делятся на: сети класса "A" - номер начинается с "0.......", маска принимается равной 255.0.0.0. Всего таких сетей 126, т.к. сеть #0 не исполь- зуется. Кроме этого из этого диапазона зарезервирована сеть 10.0.0.0 для использования в частных сетях (не подключенных к Internet). В каждой сети может быть до 16 млн. хостов. Еще в этом диапазоне зарезервирована сеть 127.0.0.0, которая адресует loobback-адаптер (петлю на себя, с адресом 127.0.0.1). Сети класса "B" - номер начинается с "10......", маска принимается равной 255.255.0.0. Всего сетей тысячи, допустимое количество хостов в каждой - до 65534. Зарезервированные номера сетей - 172.16.0.0-172.31.0.0. Сети класса "С" - номер начинается с "110.....", маска принимается равной 255.255.255.0. Всего сетей миллионы, допустимое количество хостов в каждой - 254. Зарезервированные номера сетей - 192.168.0.0-192.168.255.0. Multicast сети - номер начинается с "111.....". Сети предназначены для рассылки (как правило) служебной информации (например таблиц маршрутизации) или организации трансляции в сети. Дальнейшее разбиение сети с помощью маски (например установка маски 255.255.255.0 для сети класса "B") называется subnetting и служит для настройки маршрутизации внутри выделенной сети (маска, кстати, не может содержать в себе единицы справа от нуля, т.е. маска вида 1111111 11111111 10110000 00000000 некорректна). Маска (как и адрес) может записываться в виде dotted-decimal (xxx.xxx.xxx.xxx) либо просто в виде числа (в десятичной, шестнадцатеричной либо двоичной системе счисления - неважно. Hедавно в Internet Explorer 4.0 была обнаружена ошибка с обработкой зон безопасности именно по этой причине.) Кроме этого маска может записываться в виде IP Address/Mask bits, т.е. количество бит установленных в 1-цу и определяющих номер сети. Маршрутизация в Internet осуществляется на основе номера сети. Т.е. на маршрутизаторах имеется запись "сеть номер xxx доступна через левого (правого, верхнего, нижнего) соседа. При получении IP пакета его заголовок анализируется, и пакет переправляется дальше по трассе. В связи с этим никакие сети не должны перекрываться или иметь одинаковые номера (совсем недавно у знакомого были проблемы из-за попытки использовать маршрутизацию с сетью (номера я уже не помню, важен принцип) #192.168.111.0/24 и #192.168.111.128/25. Эти сети частично перекрываются, и, естественно, пакеты, которые должны были отправляться на вторую сетевую карту компьютера, отправлялись на первую). Остаток адреса (маскированный 0'ми маски) представляет собой номер хоста, подключенного к internet. Если номер представлен всеми нулями, он адресует саму сеть, и для нумерации хостов не используется. Так же не используется номер из всех единиц (в двоичной нотации), который представляет из себя адрес "для всех хостов в данной сети". Этот пакет попадет на все компьютеры в сети (Hа основе этого работает, например, опрос "кто в сети" Windows- машин, при использовании режима B-node, М-node либо H-node)


6.2 Как и где прописать IP адрес машины?

Пусть нам выдан IP-адрес 192.168.10.1 с маской 255.255.255.0 IP адрес машины прописывается в скриптах, выполняемых при старте системы. Для старых версий FreeBSD (< 2.2.2) это файл /etc/sysconfig, для новых файл /etc/rc.conf. Можно почитать страницы Справочника, описывающие содержимое этого файла на предмет network_interfaces. Рекомендуется также посмотреть FAQ и Руководство. IP-адрес присваивается не машине, а ее сетевому интерфейсу. Конфигурацию сетевых интерфейсов машины можно посмотреть, выполнив команду ifconfig -a. Кроме всего прочего, у одного интерфейса может быть несколько IP адресов (что задается параметром -alias). 1) Нужно, чтобы при загрузке FreeBSD обнаружила сетевой адаптер. По команде dmesg можно посмотреть сообщения этапа загрузки и выяснить, как называется сетевой интерфейс. Если сетевой адаптер не был найден, нужно перекомпилировать ядро с поддержкой вашего адаптера. 2) Задать адрес и маску, например, ifconfig ed0 192.168.10.1 -netmask 255.255.255.0 3) Маршрутизация на локальный сегмент вашей сети выставляется автоматически, в чем можно убедиться, выдав команду netstat -rn 4) Если у вас нет сетевого адаптера или все, что вам нужно - работа команды ping или машины в режиме сама с собой, то все делается командой ifconfig lo0 192.168.10.1 netmask 255.255.255.255 alias Рекомендуется также воспользоваться системным конфигуратором - /stand/sysinstall в разделе Configure/Network.


6.4 Два хоста соединены по протоколу SLIP. При тестировании соединения утилита ping дает 100-процентное прохождение пакетов, однако telnet дает следующую диагностику: connected to host ... connection timeout.

Скорее всего, не согласованы параметры компрессии (ключ -c) на обоих сторонах SLIP-соединения. Однако может быть, что сервер, к которому вы подключаетесь (так ведет себя, например, arch.relcom.ru), выполняет проверку DNS на соответствие вашего IP-адреса и имени вашего хоста и принудительно закрывает соединение.


6.5 Необходимо организовать выход в Internet через один IP-адрес, расположенный на маршрутизаторе, без использования proxy

Для этого предназначен natd в связке с ipfw. Если вы работаете с PPP, посмотрите описание параметра -alias. Также посмотрите программу ipfilter.


6.6 Какие имеются продукты для диагностики/управления сетью на основе протокола SNMP?

1) ucd-snmp из портов. Есть особенность: если в snmpd.conf строчку с директивой exec закончить пробелом, то snmpd аварийно завершает работу с созданием core-файла. 2) scotty 3) tkined


6.7 Как "подслушать" обмен на некотором порту?

Для этого предназначена утилита tcpdump.


6.8 Что такое DHCP?

DHCP - Dynamic Host Configuration Protocol, предназначенный для автоматического конфигурирования настроек сети при включении компьютеров в сети (как правило, клиентских машин типа Windows95).


6.9 Что значит сообщение 'not allocate buffer' при работе утилиты ping?

Такое случается, если у вас сетевые адаптеры 3c509 В конфигурационном файле ядра есть такая строка: # ep: 3Com 3C509 (buggy) Имеются сообщения, что есть разные прошивки адаптеров, которые ведут себя некорректно Нужно отключить с помощью утилиты 3x5c9cfg режим PnP на адаптере. Замените адаптеры на другие Другой выход: увеличить значение параметра NMBCLUSTERS в ядре.


6.10 Как организовать несколько IP-адресов на одном интерфейсе?

Из командной строки: ifconfig ed0 inet 192.168.10.1 netmask 255.255.255.0 ifconfig ed0 inet 192.168.10.5 netmask 255.255.255.0 alias ifconfig ed0 inet 192.168.20.1 netmask 255.255.255.0 alias ... ifconfig ed0 inet 192.168.30.1 netmask 255.255.255.0 alias или в /etc/rc.conf ifconfig_ed0="inet 192.168.10.1 netmask 255.255.255.0" ifconfig_ed0_alias0="inet 192.168.10.5 netmask 255.255.255.0" ifconfig_ed0_alias1="inet 192.168.20.1 netmask 255.255.255.0" ... ifconfig_ed0_aliasN="inet 192.168.30.1 netmask 255.255.255.0" Нужно еще не забыть route add ${ALIAS} 127.0.0.1 во FreeBSD 2.1.0 была неприятность, связанная с работой route, который срабатывал со второго раза.


6.11 Машина с Samba медленно появляется в сетевом окружении Win95.

Попробуйте поставить следующие параметры в smb.conf: workgroup = MYGROUP domain master = yes local master = yes preferred master = yes os level = 30


6.12 Неожиданно умирают все даемоны samba, кроме подключенных.

Попробуйте скомпилировать samba без опции -DFAST_SHARED_NODES либо проверьте наличие опции SYSVSHM в ядре.


6.13 Как заставить samba правильно выдавать объем оставшегося дискового пространства?

Поищите на странице Справочника по samba описание команды dfree, в поставке есть пример скрипта, отрабатывающего эту команду. При этом параметр max disk size особого значения не имеет, а только вводит пользователя в заблуждение. При наличии квот на файловую систему нужно перекомпилировать samba с опцией -DQUOTAS. При этом свободное место показывается как разница между soft-limit и занятым объёмом, хотя писать можно вплоть до исчерпания hard-limit.

Samba, идущая в поставке FreeBSD, откомпилирована без -DQUOTAS, поэтому нужно будет изменить порт.


6.14 Как подключить компьютеры Macintosh к FreeBSD?

В ядре option NETATALK и среди пакаджей найти netatalk и asun. Правда, есть мнение, что при этом несколько падает устойчивость системы в целом.


6.15 При создании мелких файлов на сервере samba дисковое пространство уменьшается на 64 Кб. Почему так?

Это число точно соответствует размеру блока, с которым создана файловая система FFS. Почитайте страницы Справочника по tunefs и fs вообще.


6.16 Как увеличить скорость работы samba?

Прежде всего убедитесь, что вы еще не достигли предела, замерив скорость прокачки большого файла по ftp (например, через FAR). Скорость можно увеличить, указав среди параметров socket options = TCP_NODELAY. Также почитайте файле Speed.txt в каталоге с документацией дистрибутива. Другие причины и способы: 1) Убрать в Win95 все ненужные протоколы, кроме TCP/IP. 2) Нехватка памяти на samba. Добавить памяти. ;) 3) Плохое кабельное хозяйство. 4) Медленный диск/контроллер. 5) Сеть/сервер загружены транзитным трафиком.


6.18 Странности при работе samba и DNS.

Попробуйте _корректно_ прописать хосты в /etc/hosts, то есть сначала полное имя хоста, а потом все короткие имена.


6.20 Как в брандмауэре оставить только один сервис, скажем, исходящий pop3 на 110 порт?

Вот так:

/sbin/ipfw add pass tcp from any to any established /sbin/ipfw add pass tcp from <myIPs> to <POP> 110 setup /sbin/ipfw add deny all from any to any

Здесь не мешало бы разрешить обращение к DNS и loopback-интерфейсу.

В /etc/rc.firewall есть простые примерчики.


6.21 После настройки брандмауэра все перестало работать.

Вполне может быть, что вы забыли разрешить какой-нибудь сервис, например, DNS.

Кроме того, опцией ядра IPFIREWALL_VERBOSE можно включить вывод отладочной информации, что поможет в отладке брандмауэра.


6.22 Почему при передаче файла по FTP скорость записи гораздо ниже скорости чтения?

По умолчанию во FreeBSD выключена буферизация операций записи на диск.


6.23 Как сконфигурировать брандмауэр?

Посмотрите примеры конфигурации на http://www.metronet.com/~pgilley/freebsd/ipfw/


6.24 Является ли PPP-соединение отдельным сетевым сегментом?

Да, состоящим из двух компьютеров, поэтому здесь часто используют сетевую маску 255.255.255.252. Этот сегмент можно "объединить" с помощью встроенного в PPP arpproxy.


6.25 При PPP/SLIP соединении является ли модем аналогом сетевого адаптера?

Да. Точнее говоря, работа с PPP/SLIP осуществляется через сетевые интерфейсы, им соответствующие, а именно sl0..slN для SLIP, tun0..tunN для ppp и ppp0..ppp0 для pppd.


6.26 Могут ли разные сетевые интерфейсы на одной и той же машине иметь один и тот же IP-адрес?

Нет, хотя бы потому, что будет неизвестно, какому интерфейсу адресовать пришедший IP-пакет.


6.27 Какой тип PPP - user level или kernel предпочесть?

В настоящее время наиболее активно поддерживается user level ppp, хотя есть мнение, что pppd лучше.

Также есть сообщения, что ppp и pppd запускаются с разной вероятностью успеха на разных версиях FreeBSD.

рекомендуется сначала попробовать pppd, так как его конфигурационный файл в /etc/ppp, входящий в поставку системы, проще модифицировать.

В Руководстве описано, как настроить mgetty для работы с ppp, хотя в конфигурационном файле из дистрибутива используется pppd. Там всё сводится примерно к 1) Раскомментировать строчку AutoPPP в login-файле mgetty 2) Исправляются параметры запуска pppd (+PAP -CHAP -login и так далее) При входящем звонке mgetty распознает PPP и запустит pppd.

Документация по pppd довольно скудна, но есть руководство по его настройке по адресу http://www.nitek.ru/~igor/pppd/


6.28 Как настроить named, чтобы он являлся primary для некоторого домена xxx.ru?

Нужно прописать в конфигурационном файле (/etc/namedb/named.boot) строчку

primary xxx.ru xxx.ru.pri где xxx.ru - имя обслуживаемого домена, а xxx.ru.pri - имя файла, содержащего записи DNS для этого домена.


6.29 Как настроить named, чтобы он обращался к информации DNS к DNS провайдера, а не непосредственно к DNS, содержащим соответствующие зоны?

Нужно указать в конфигурационном файле (/etc/namedb/named.boot) следующий параметр:

forwarders 195.54.2.1 где 195.54.2.1 - это IP-адрес DNS-сервера вашего провайдера


6.30 Как настроить named, чтобы он являлся primary для некоторой IP-сети?

Нужно прописать в конфигурационном файле (/etc/namedb/named.boot) строчку

primary 10.80.10.IN-ADDR.ARPA 10.80.10.rev где 10.80.10.IN-ADDR - имя обслуживаемой обратной зоны, а 10.80.10.rev - имя файла, содержащего записи DNS для этой зоны.


6.31 Как настроить брандмауэр, чтобы закрыть доступ к DNS из Internet?

Пусть наша внутренняя сеть 10.80.10.0:255.255.255.0 и внешним интерфейсом sl0 /etc/rc.firewall: $fwcmd add pass tcp from any to ${oip} 53 via ${oif} setup $fwcmd add pass udp from any 53 to ${oip} via ${oif} $fwcmd add pass udp from ${oip} to any 53 via ${oif} /etc/rc.firewall: $fwcmd add pass all from ${inet}:${imask} to ${iip} via ${iif} $fwcmd add pass all from ${iip} to ${inet}:${imask} via ${iif}


6.32 Как настроить named, чтобы он не выдавал информацию о некоторых зонах (например, обратных для приватных сетей) в Internet?

Возможность ограничивать доступ к информации о зонах имеется в последней версии BIND 8 через ACL.

Еще можно так (?): secure_zone IN TXT 10.0.0.0:255.0.0.0


6.34 Что значат значения Ierrs и Oerrs в выдаче программы netstat -i?

Согласно Справочнику, это количество ошибок в принимаемых и передаваемых данных.

Скорее всего, это сигнализирует о наличии большого числа коллизий в сети. Если сетевой адаптер подключен к концентратору или коммутатору, имеет смысл проверить соответствие настроек параметров дуплексной или полудуплексной передачи (он должен совпадать).

Наличие некоторого их количества (около 1%) вполне нормальное явление.


6.35 Как бороться с самовольным присвоением пользователями чужого IP адреса?

Самое лучшее решение: Правильная технология такая - как в messages появилась строка на тему arp moved - так shutdown, log на принтер и приказ по лавке: === За нарушение правил эксплуатации сети ЭВМ стажёром Ивановым И.И. начальнику отдела информационной безопасности Петрову П.П. вставить Иванову И.И. клизму на 40 литров с 1кг патефонных иголок. Hачальнику юридического отдела Сидорову С.С. подготовить материалы о возбуждении против Иванова И.И. уголовного дела по ст.274 ч.1 УК РФ. Прорабу Хрюшеву Х.Х. подготовить объём работ от 180 до 240 часов по уборке прилегающей территории от чего-нибудь Ивановым И.И. Исполнительному директору Фокину Ф.Ф. ознакомить с приказом сотрудников лавки в срок до того ября. === Мне так кажется, что на этом проблемы с arp, ip номерами, самопальными серверами итп заканчиваются в /


6.36 Как работать с ICQ из сети с Intranet-адресами?

Если вы работаете через NATD, то вам нужно разрешить прохождение пакетов во внутреннюю сеть на порты в диапазоне где-то 1000-1200.

Более правильно использовать socks5 из коллекции портов.


6.38 Чем отличается socks5 от socks4?

В socks5 добавлена возможность авторизации, например, по пользователям.


6.39 Как настроить socks5 для работы с ICQ?

/etc/socks5.conf: auth - - - permit - - 10.80.10. - - - SET SOCKS5_NOREVERSEMAP SET SOCKS5_NOSERVICENAME SET SOCKS5_PIDFILE filename SET SOCKS5_PWDFILE /etc/socks5.passwd SET SOCKS5_UDPPORTRANGE 1023-5000


6.40 Что такое dummynet?

Это средство выборочного ограничения пропускной способности, появившееся в 2.2.8-RELEASE, например, для понижения приоритетности трафика Internet.

Однако есть сообщения, что указываемая скорость не всегда соответствует реально достигаемой. (Реальным 64Kbit соответствует 80KByte).


6.41 Как сделать VPN?

Для этого имеется пакет IPSec. вот сообщение из списка рассылки: Quoting David W. Chapman Jr. (dchapman@houabg.com): > Does anyone know how to setup VPN or PPTP on freebsd? I have a setup working with ppp over ssh. Scripts, netmap and ipfw info are available at http://www.ishiboo.com/~nirva/vpn/. I had most of an OpenBSD<-->FreeBSD w/ OpenBSD IPSec patches VPN working, but the port of the patches seems to have broken something, and i can't get it all working.. KAME didnt support tunneling last I looked, maybe it does now... http://www.kame.net. -- ___________________________________________________________________________ Danny Dulai Feet. Pumice. Lotion. http://www.ishiboo.com/~nirva/ nirva@ishiboo.com


6.42 Каким образом можно получить доступ к дискам Novell Netware?

Если вам нужен только обмен файлами, достаточно будет сервиса FTP, который включен в поставку IntraNetware 4.11.

Как отдельный продукт существует Netware NFS, позволяющий монтировать диски Netware как диски NFS-сервера.

Есть также Netware NFS Gateway, позволяющий обращаться к дискам NFS-сервера, расположенного на FreeBSD, как к томам Netware.


6.43 Где взять MultiSlip, позволяющий организовать SLIP-соединение с использованием нескольких каналов связи?

Разработчиком MultiSlip является Игорь Чечик. Вот что он написал по поводу своей разработки:

В BSD/OS 2.1 нет и от меня уже не будет, собственно я его не обещал. Однако я знаю что есть работающая версия под 2.1 у lom@paco.odessa.ua (Олег Левченко), я видел тексты, с моей точки зрения они не доведены до "красивого" уровня но видимо вполне работоспособны. Олег говорит что у них работает в нескольких точках. Так что - это уже не ко мне :). Под 2.01 работает точно.

С другой стороны, это ведь уже устарело все морально, жизнь идет, народ богатеет, проще купить CISCO2509/2511 чем делать роутер из писюка. Я эту деятельность закончил :).


6.46 Как использовать возможности сетевой печати на принтерах HP с адаптером JetDirect?

Вот что написал Борис Самородов:

imho JetAdmin (программу) с фрей подружить нельзя, т.к. они под другие *nix писаны. А вот JetDirect (плату) подружить можно. Hо до конца мне это не удалось. Итак. Имеем HP LJ 4000N с платой JetDirect. Читаем книгу "Руководство по установке HP JetDirect" главу 12 "Hастройка JetDirect для использования LPD". Дело в том, что эта плата (сервер печати) изначально содержит в себе демон ldp. 1-й этап в файле /etc/hosts: 192.168.1.100 jaserjet1 ^^^^^^^^^^^^^ адрес, прописанный в принтере (по умолчанию imho 192.0.0.192) 2-й этап в файле /etc/printcap: lj1_text|HPLJ in text mode:\ :lp:\ :rm=laserjet1:\ :rp=text:\ :sd=/usr/spool/lpd/lj1_text: lj1_raw|HPLJ in raw mode:\ :lp:\ :rm=laserjet1:\ :rp=raw:\ sd=/usr/spool/lpd/lj1_raw: 3-й этап: cd /usr/spool/lpd mkdir lj1_text lj1_raw chown daemon lj1_text lj1_raw chgrp daemon lj1_text lj1_raw chmod g+w lj1_text lj1_raw После reboot (imho kill -HUP 1 достаточно) усе будет пучком. Принтер по умолчанию должен сам распознавать тип печати (text, PCL, PS). Мне не удалось подружить его с русскими буковками. В тексте он не русифицирован и кодовой страницы с кириллицей у него нет (это я о принтере) :-( Hу и в графике я пока не _умею_ слать шрифт PS вместе с файлом печати. Hо теоретически все должно быть OB. А вот англицкие печатает красиво... Hу и еще man lpq, lpr... Это и ко мне -- но времени нет :-(


6.47 Samba работает некорректно с русскими именами файлов.

В конфигурационном файле smb.conf должны присутствовать следующие строки:

client code page = 866 character set = koi8-r mangle case = no preserve case = yes short preserve case = yes default case = upper case sensitive = no

6.48 Где взять драйверы для сетевых адаптеров ArcNet?

Написанием этих драйверов занимается Max Khon


6.49 Чем отличается samba от rumba?

samba - это сервер SMB, позволяющий использовать диски и принтеры UNIX в сети Microsoft.

rumba (в настоящее время называется sharity-lite) - это клиент для FreeBSD, позволяющий использовать дисковые ресурсы сети Microsoft из UNIX, наподобие NFS.


6.50 Каким образом можно получить доступ к дисковым ресурсам Windows/Windows NT?

Для этого предназначен пакет Sharity (старое название - rumba) и Sharity-Light (некоммерческая версия). Он позволяет монтировать дисковые ресурсы сети Microsoft из-под FreeBSD. Домашняя страница находится по адресу http://www.obdev.at.

Sharity является лицензируемым продуктом, на использование которого нужно получить лицензию у автора (правда, для образовательных учреждений она дается бесплатно), хотя распространяется в исходных текстах.

Sharity-Light имеет ограничения тремя уровнями вложенности каталогов&

В Sharity-Light есть проблема зависания обращений к подмонтированному диску, если сервер становится недоступным (в Sharity этого нет). Кроме того, в монтируемом каталоге создаются две записи для "." и "..".


6.51 При работе с NFS недоступность сервера вызывает блокирование работы с сетевым диском, выполнение команд df занимает вечность.

Для решения этой проблемы воспользуйтесь даемоном автомонтировки amd, входящим в поставку FreeBSD. Он корректно отслеживает доступные NFS-серверы и монтирует ресурсы, к которым производится доступ, по мере необходимости.


6.52 Как должен выглядеть файл pap-secrets для авторизации пользователей только из учетной базы пользователей?

Попробуйте сделать это следующим образом:

имя-пользователя * "" IP-адрес-пользователя или, если IP-адрес не важен: имя-пользователя * "" *


6.53 Не работает функция gethostbyname.

Вам нужно настроить работу с DNS на вашей машине. Для этого потребуется откорректировать файлы /etc/resolv.conf, /etc/hosts и /etc/host.conf.


6.54 Как использовать возможности socks5?

socks5 предназначен для работы в качестве универсального проксирующего сервера, однако он требует поддержки протокола socks5 со стороны клиентского программного обеспечения (такими, например, являются стандартный клиент ICQ для Windows, ssh для FreeBSD) либо использования специального программного обеспечения, позволяющего использовать стандартное программное обеспечение (таким, например, является программа runsocks, входящая в комплект socks5).

Примеры конфигурационных файлов:

Для socks5-сервера (файл /usr/local/etc/socks5.conf):

auth - - - permit - - - - - -

Для socks5-клиента (файл /usr/local/etc/libsocks5.conf):

socks5 - 10.80.10.1 1080 - -

Обратитесь также к документации по socks5.conf(5) и официальному сайту


6.55 Каким оборудованием можно соединить две сети по выделенным 2-х или 4-проводным медным каналам связи и какую скорость можно при этом получить?

Стандартным оборудованием являются обычные аналоговые модемы, имеющие режим работы на выделенных линиях. При этом реально достижимая скорость не превышает 38400bps, хотя они могут использоваться на больших расстояниях.

На коротких расстояниях применяются модемы для физических линий.

вот примерные характеристики: SRM от фирмы RAD модем RAD ASM дает около 2Мб на расстоянии 2Км по 4-х проводному каналу связи 3км - на обычных линия дадут шлеф порядка 700-750 Om router---fcd-2---htu-e1 ====2Mb router---Pairgain-E1====2Mb (У меня работал на линии 650 Om) router---Pairgain-T1====1.5Mb (Должен работать на 700-900 Om) router---Pairgain-384===384Kb (up to 1.5 KOm) router---Zelax(sync) pcrouter---zelax-115K===115Kb (Очень устойчивый, не дорогой, async) Есть ещё М-160К (160 кбит/с), есть шанс, что М-200 пойдет (256 кбит/с). Обратите также внимание на оборудование фирмы Granch


6.56 Как настроить pppd для работы по выделенному каналу?

Попробуйте воспользоваться вот таким файлом /etc/ppp/options:

/dev/ttyd0 115200 modem -detach crtscts defaultroute lcp-echo-failure 3 lcp-echo-interval 30

При этом pppd запускается из /etc/ttys:

ttyd0 "/usr/sbin/pppd" unknown on

6.57 Как настроить протокол IPX?

Подробная информация о поддержке протокола IPX находится на страничке Бориса Попова, который занимается поддержкой этого протокола и связанных с ним утилит во FreeBSD.


Chapter 7 Администрирование.

7.1 Система отвергает все попытки входа привилегированным пользователем по протоколу telnet.

В файле /etc/ttys для всех устройств класса network достаточно добавить ключевое слово secure.

Однако этот способ ослабляет безопасность системы. Более корректно включить определенного пользователя в группу wheel (в файле /etc/group), и после входа им по протоколу telnet выполнить команду su.


7.3 Свежеустановленная система FreeBSD 2.2.2-RELEASE при входе привилегированным пользователем выдает сообщение: login_getclass: unknown class 'root'

В каталог /etc необходимо поместить файл login.conf, который выкачивается из каталога /pub/FreeBSD/FreeBSD-current/src/etc/login.conf либо создается вручную и содержит единственную строку: root|default: Также поможет чтение руководства: "man 5 login.conf"


7.4 Необходимо определенному пользователю обеспечить доступ по протоколу FTP в его личный каталог, не допуская при этом возможности работы в режиме командной строки.

Стандартный ftpd разрешает доступ к личным каталогам только тем пользователям, которые имеют в качестве интерпретатора командной строки программу, описанную в файле /etc/shells. Таким образом, достаточно, например, добавить в список возможных оболочек (который находится в файле /etc/shells программу /sbin/nologin и определить её интерпретатором для нужного пользователя.

Это безопасно, так как r-команды используют командный процессор, описанный в /etc/passwd.


7.6 Как прервать работу пользователя, зашедшего в систему по telnet или ftp?

Командой kill. Но сначала нужно выяснить номера процессов, владельцами которых является этот пользователь. Их и следует остановить командой kill -9 <номер процесса>.

Список процессов, владельцем которых является пользователь 'cracker', можно вывести командой ps axu | grep 'cracker'


7.7 При входе в систему выдаются различные надоедающие сообщения. Как от них избавиться?

Источниками таких сообщений являются: Файл /etc/motd, генерирующийся каждый раз при старте системы, что можно отключить в /etc/rc.local Скрипт /etc/profile (часто туда помещается программа fortune) Отредактируйте соответствующие файлы на предмет генерации таких сообщений.


7.9 Как организовать печать на лазерном принтере?

Поставьте ghostscript, русские шрифты к нему и apsfilter. Правда, есть некоторые неприятности при печати дифтонгов (?) типа if, ff).


7.10 Как русифицировать консоль FreeBSD?

В файл /etc/rc.conf: keymap=ru.koi8-r keychange="61 ^[[K" # use Escape char (^[) here! scrnmap=koi8-r2cp866 font8x16=cp866b-8x16 font8x14=cp866-8x14 font8x8=cp866-8x8 В файл /etc/ttys: ttyv0 "/usr/libexec/getty Pc" cons25r on secure # for each tty


7.11 Как организовать приём/передачу факсов с клиентских машин под Windows95?

Нужно поставить пакет hylafax, для Win95 - клиентскую часть и драйвер ps-принтера. http://www.transcom.de/whfc/install.html ports/comms/hylafax


7.12 Как настроить дисковые квоты?

Почитайте страницы Справочника, а также соответствующие главы Руководства. man -k quota


7.13 Некорректно отображаются русские буквы "пряс" на консоли.

При русификации консоли воспользуйтесь screenmap.


7.14 Как настроить FreeBSD для работы с провайдером по выделенному телефонному каналу?

Модем нужно выставить в режим выделенной линии. Соединяться он должен автоматически при включении либо по поднятию DTR.

Для связи можно использовать slattach для SLIP либо ppp/pppd для работы по протоколу PPP. Настройка их аналогична настройке связи двух машин по нуль-модему, советуем сначала на нем испытать.

В Руководстве есть достаточно полное описание настройки этих программ.

Для пересылки почты в Internet лучше использовать Sendmail или другой SMTP-мэйлер.


7.15 Нужна утилита для непосредственной работы с /var/log/wtmp, просмотра, удаления и добавления записей.

Такая утилита существует в одном наборе с другими кракерскими утилитами (сниффер и еще что-то) от THС. Формат wtmp является открытым (man utmp). Утилиты last и ac корректно отрабатывают смену времени. В 3.0 сменился формат utmp/wtmp, так что будьте осторожны со старыми системами сбора статистики.


7.16 Как организовать учёт/ограничение трафика между локальной сетью и Internet? Какие утилиты есть?

Готовых бесплатных решений нет. Если делать самому, то нужно почитать следующий материал: man ipfw man 4 divert man 4 dummynet Нужно будет написать демона, который бы все учитывал, делал статистику (желательно в SQL) и тд.

Существуют следующие утилиты:

  • ipfw count

  • snmpd

  • mrtg

  • trafstat/trafd/trafshow


7.17 Как организовать автоматический запуск некоей программы на одной из виртуальных консолей?

Есть пара способов:

Изменить исходные тексты программы /usr/libexec/getty, чтобы она осуществляла автоматический вход неким пользователем, у которого нет пароля и в сценарии входа стоит запуск этой программы.

Изменить исходные тексты программы для осуществления действий, которые как правило выполняет getty, и запускать её вместо getty.

Есть программа, которая называется rungetty - это именно то, что нужно.


7.18 Как запустить некое программное обеспечение для Linux под FreeBSD?

Прочтите главу Руководства, посвящённую вопросу эмуляции Linux на FreeBSD.


7.19 Ограничение трафика не влияет на ftpget из поставки squid.

Задайте опцию -b для ftpget. Для squid 2.x это не актуально.


7.20 Какую скорость ограничивают delay-pools в squid?

Это - ограничение скорости обмена между squid и внешним миром.


7.21 Хочется сделать тупой терминал, который при включении слушает определенный коммуникационный порт.

Настраивается любая терминальная программа (tip), затем запрещается getty на этот /dev/ttyv0 (в /etc/ttys) и вешается вызов

( while sleep 1; do tip линия < /dev/ttyv0 > /dev/ttyv0 2>&1; done; ) & в /etc/rc.local


7.22 Перестали находиться динамические библиотеки типа libX11.so.6.1, хотя в каталоге /usr/X11R6/lib они есть.

Такое случается после выдачи некорректной команды ldconfig. Для восстановления работоспособности нужно выполнить команду ldconfig -R /usr/X11R6/lib ну и почитать страницы Справочника. В файле /etc/rc.conf есть переменная ldconfig_paths, содержащая полный набор каталогов, в которых находятся динамические библиотеки. Добавьте туда свой каталог, чтобы не запускать каждый раз ldconfig.


7.23 Что такое DoS?

Это сокращение от Denial of Service (Отказ в Обслуживании). Существуют методы атаки на UNIX, при которых система перестает отвечать на запросы на обслуживание. При этом, как правило, система остается работоспособной в целом, но некоторые сервисы перестают функционировать.


7.24 Как организовать печать текстовых документов?

Поставить соответствующий фильтр, перекодирующий koi8-r в alt.


7.25 Как полностью перегенерировать систему и перейти на новую версию?

Согласно Руководству (18.4.), наиболее полное описание этого пpоцесса лежит находится по адресу http://www.nothing-going-on.demon.co.uk/FreeBSD/make-world/make-world.html

Однако рекомендуется все же сначала проинсталлировать заново последний RELEASE, и только затем делать CVSup.


7.26 При работе squid не кэшируются html-страницы, хотя их содержимое не менялось.

Это зависит от www-сервера, к которому обращается squid. В частности, Russian Apache по умолчанию посылает служебную строку Pragma: no-cache для страниц, кодировка которых заранее не известна, что и заставляет squid не кэшировать документ.


7.27 Как правильно ограничивать трафик в squid?

Такая возможность появилась в squid 2.0 и называется delay pools. Прежде всего проверьте, была ли включена эта возможность на этапе компиляции squid ключом утилиты configure --enable-delay-pools.

В squid.conf нужно будет прописать нечто вроде:

acl comp src 192.168.10.15/255.255.255.255 delay_class1_access allow comp delay_class1_aggregate_max 8000 delay_class1_aggregate_restore 8000i

Заметьте, что объекты из кэша не замедляются.

Поищите в архивах squid переписку по этому поводу, а точнее, http://www.cineca.it/proxy/search/html/9812/139.html. Это письмо автора с подробными разъяснениями. По слухам, реализация delay pools для class1 работает плохо, поэтому уменьшать скорость работы нужно по class2, а для class1 сделать следующее:

delay_class1_access deny all Delay pools are meant to provide a way of assigning tokens of bandwidth allowance to Squid users. Pools are assigned on a host basis (IP), which basically means that what you restrict is the WAN bandwidth pumped by Squid for any individual host accessing the Net through it. I am beginning from the most general case, which is the allowance for a group of hosts (a block of IP addresses). An individual host may be part of a group or be a group in itself. In delay pools there are four basic parameters to be defined: 1) aggregate_max 2) aggregate_restore and 3) individual_max 4) individual_restore In order to understand the meaning of each parameter I will briefly explain the concept behind delay pools: For every host in one group there is one delay pool size descriptor (individual_max) and one increment level (individual_restore) associated. We can think delay pools as a bucket of tokens (bytes). The size of the bucket (for one host) is individual_max bytes. At any given time, the bucket can have at max that many tokens (bytes) accumulated. Before Squid fetches a page for that host, it looks up the number of tokens (bytes) available at the bucket. Let's call it the current bucket watermark. If there are enough tokens in the bucket, Squid gets the tokens it needs, lowers the bucket watermark accordingly and proceeds to reading a number of bytes from the connection. If there are no tokens available, Squid is enforced to defer the read, until some tokens (bytes) are available within the bucket. How is this done? This is where the increment level value comes into play: individual_restore defines the number of tokens (bytes) added to the current bucket watermark level every second. To further visualise it, think of a real bucket under a faucet: the bucket can hold a certain amount of water (e.g. 1 litre). The faucet drops a certain amount of water each second (for example 10 cl). We start with the bucket filled of water, but as we start taking water off the bucket with a glass, the available water goes down. If we want to keep a steady watermark level we must take water with the same rate it is dropping from the faucet. If we have a higher rate, the bucket will soon become empty, and then we will have to wait until the faucet has dropped enough water in the bucket again. If we do not use any water for some time the water will overflow the bucket, therefore the bucket will continue to have at most 1 litre of water for immediate use. At telecomm parlance, this is a variation of the leaky bucket algorithm (no wonder why I used the bucket as an example)! It will (?)be used for bandwidth policing in modern data networks (ATM for example). How to configure the delay pools in Squid now: At first decide what kind of grouping you need. If you want all your users to have only one bucket then you go for delay_class1. If you want to have separate buckets for each user then you must opt for delay_class2 or class3 (depends on your network). The Aggregate_* settings work almost the same way as the individual with one distinction: in class 2 (this is what I use) and class3 the aggregate delay pool is used only if no individual pool is defined. IMHO I think that it would be more efficient if the aggregate delay pool could provide tokens if an individual pool ran out of tokens at a certain time. (This could be an additional measure to accommodate bursts for some users). If you decide that you need class2 then remember to put the statement acl all src 0.0.0.0/0.0.0.0 delay_class1_access deny all At present it is needed in order to allow class2/class3. Assume that you want class2 delay pools. Then you need something like the following: acl hosts src xxx.xxx.xxx.a-xxx.xxx.xxx.b/255.255.255.255 delay_class2_access allow hosts #delay_class2_aggregate_max 32000 #delay_class2_aggregate_restore 2000 delay_class2_individual_max 24000 delay_class2_individual_restore 1200 This defines a block of hosts with IP addresses in the Class C net from a to b (but you can add also other individual hosts to the acl) that will share the following pool settings: Maximum pool size 24000 bytes Increment level 1200 bytes I don't use the aggregate settings because they do not have any effect when individual pools are set. The individual settings more or less let the host fetch "immediately" pages that are slightly larger than 24000 bytes. If the host tries to fetch a large page then Squid after the initial burst (~24KB) it will slow down to the rate defined by the increment value defined by "delay_class2_individual_restore" (i.e. 1200 bytes/sec). If you do not want to allow for any burstiness in the delay pool then simply define the max size of the pool equal to the restore size. (but this is already documented). Right now, you can have only one effective delay pool setting. This means that you cannot set more than one group of users in the same class. I hope that David will find the time to extend delay pools in order to handle more than one type of host groups in one class. In my view this is necessary. After using delay pools for some time now, I strongly think that it is a powerful add-on to Squid. I think that if it is extended to handle multiple groups (with different pool settings in each group) its value will be really leveraged. Cheers, Evaghelos. И еще одна добавка от автора delay pools Subject: Re: DELAY_POOLS: How to setup Resent-Date: Wed, 11 Nov 1998 18:27:05 -0800 (PST) Resent-From: squid-users@ircache.net Date: Thu, 12 Nov 1998 09:29:04 +0800 From: David Luyer <luyer@ucs.uwa.edu.au> To: Evaghelos Tsiotsios <etsiot@archetypon.gr> CC: squid-users@ircache.net, tarkhil@synchroline.ru Thanks to Evaghelos Tsiotsios for his description of delay pools. A few clarifying comments are below; > The Aggregate_* settings work almost the same way as the individual with one > distinction: in class 2 (this is what I use) and class3 the aggregate delay > pool is used only if no individual pool is defined. This assumption (and related comments later) is incorrect. (Or if it is correct it is a coding error.) The aggregate and individual totals both act to limit the traffic, if either is empty then the request is delayed. For example, I run approx 64kbps peak rate (with small 'bucket size') on one of the delay_class2 pools and then give each user in it approx 8kbps (with large 'bucket size'). The large bucket size on individual users lets each user get a web page "instantly" but if they start downloading a large file it is slow. The small bucket size on the aggregate means that the 64kbps is the limit of bandwidth use (modulo overheads) for these users. Also, I didn't notice any mention of the 'no-delay' tag you can put on neighbors - this will prevent traffic fetched from that peer from being 'taken out of the bucket'; for example if you have a fast, "free traffic" ATM network to local universities but anything further away costs money, and you peer caches with local universities, you can put the 'no-delay' tag on these peers cache_host lines. Regarding class2/3 delay pools: It could take some time before I'm able to do any work on multiple delay pools of a given class. How I think it should work is this (sorry, sparse documentation on this, but I hope enough to show anyone whose interested and understands the current system what it means): delay_pools 3 # 3 delay pools delay_class 1 1 # pool 1 is class 1 delay_class 2 1 # pool 2 is class 1 delay_class 3 3 # pool 3 is class 3 delay_access 1 allow staff delay_access 1 deny all delay_access 2 allow students delay_access 2 deny all delay_access 3 allow college delay_access 3 deny all delay_parameters 1 640000/640000 delay_parameters 2 64000/64000 delay_parameters 3 64000/64000 32000/64000 6400/32000 # ttl_rest/ttl_max net_rest/net_max ind_rest/ind_max The acls and delay pool data could then be dynamically allocated. Maybe once this was done delay pools could be put into squid by default as the cost of disabled delay pools would be very close to zero (simply a few checks if delay_pools number was 0). David.


7.28 Не выполняется команда fastboot.

Такое бывает. Исправляется сменой материнской платы. Есть также подозрение, что это проявляется при использовании сетевого адаптера Intel EtherExpress в сочетании с некоторыми материнскими платами. Конкретно возникали проблемы на материнской плате: ASUS PVI-486SP3


7.29 Как через CVSup скачать исходные тексты системы?

Пусть мы хотим получить исходные тексты для 2.2.8-RELEASE:

Создать файл supfile.cvsup такого содержания:

*default host=cvsup.ru.FreeBSD.org *default base=/usr *default prefix=/usr *default release=cvs *default tag=RELENG_2_2_8_RELEASE *default delete use-rel-suffix compress src-base src-bin src-contrib src-etc src-games src-gnu src-include src-kerberosIV src-lib src-libexec src-release src-sbin src-share src-sys src-tools src-usrbin src-usrsbin


7.30 Как полностью перегенерировать систему?

Сначала нужно проинсталлировать исходные тексты системы из дистрибутива либо скачав их по CVSup с ближайшего CVSup-зеркала FreeBSD, например, cvsup.ru.freebsd.org

Теперь

# cd /usr/src # make buildworld # shutdown now # make installworld

Здесь shutdown нужен, чтобы уйти в single user mode. Иначе возможны эксцессы и неприятные конфликты.

# cd /usr/src/sys/i386/conf # vi YOUR_KERNEL_CONFIG_FILE

Привести в соответствие с новой версией ядра.

# config YOUR_KERNEL_CONFIG_FILE # cd ../../compile/YOUR_KERNEL_CONFIG_FILE # make # make install # reboot

Все, имеем рабочую (надеемся) систему.


7.31 Можно ли удаленно произвести обновление FreeBSD с версии, скажем, 2.2.5 до версии 2.2.8?

Да, через полную перекомпиляцию системы make world. Однако все таки имеет смысл при этом процессе присутствовать рядом.

То есть теоретически можно, а практически - иногда.


7.32 Как из скрипта организовать выкачку документа через прокси-сервер?

В стандартной команде fetch, а также в утилите wget есть возможность работать через proxy. например, так:

HTTP_PROXY=proxy.surnet.ru:8080 fetch -o index.html http://surw.chel.su/ setenv http_proxy proxy.surnet.ru wget http://surw.chel.su/


7.33 Как запретить доступ к tftpd от определенных хостов (или разрешить только некоторым)?

Воспользуйтесь утилитой tcpd, позволяющей ограничивать доступ к определенным сервисам через файл, содержащий списки хостов, которым запрещен или разрешен доступ, типа /usr/local/etc/hosts.allow.

Вы также можете настроить соответствующим образом брандмауэр.


7.34 Как настроить locale для кодовой страницы CP1251?

Посмотрите на странице, посвящённой локализации: http://www.sensi.org/~alec/locale/


7.35 Как подключить UPS так, чтобы выполнялся shutdown?

Попробуйте взять утилитку по адресу ftp://ftp.ins.dn.ua/pub/system/unix/drivers/powershut.tgz. Кроме всего прочего, она позволяет также выполнить процедуру закрытия и на соседних серверах.

В принципе подобную утилиту можно написать и самому. Исходные тексты такой программы, работающей с BackUPS PRO, доступны по адресу ftp://ikar.elect.ru/pub/FreeBSD/upsd/BackUPS.c.


7.36 В чем разница между аутентификацией и авторизацией?

Аутентификация - это проверка соответствия субъекта и того, за кого он пытается себя выдать, с помощью некой уникальной информации (отпечатки пальцев, цвет радужки, голос и тд.), в простейшем случае - с помощью имени входа и пароля.

Авторизация - это проверка и определение полномочий на выполнение некоторых действий (например, чтение файла /var/mail/eltsin) в соответствии с ранее выполненной аутентификацией,


7.37 На определённое время (на ночь) нужно отключать прямой доступ в Internet у нескольких подсетей. Как это сделать?

Напишите соответствующие правила для брандмауэра (ipfw) в виде скрипта и задайте его выполнение в определенное время с помощью cron.


7.39 Поделитесь методами учета пользователей для мелкого провайдера?

Командой last из wtmp выбирается информация о работе пользователей, по ним с учетом тарифа выставляется счет. Если не нужна статистика в реальном времени, можно запускать обработку раз в сутки.

В базу данных заносятся записи о времени входа и времени выхода из системы, потом считается.

Для поминутного учета можно, например, запускать по cron команду w, по ней выяснять пользователей, работающих в данный момент, и записывать в базу.

Добавление записей в базу можно сделать в скрипте /etc/ppp/ip-down

Например так:

last -s -t cuaa2 | awk -F '[()]' '{print $2}'

Правда, учтите, что ключ -s для выдачи времени в секундах появился только в последних релизах (2.2.8).

Существовала программка amlast из пакета статистики amstat, выдающая информацию в приемлемом виде.


7.40 Как организовать размещение подкаталогов ftp-сервера на нескольких соседних ftp-серверах?

Готового решения, позволяющего перенаправлять ftp-запросы на другие сервера прозрачно для ftp-клиента, не существует. Однако проще всего организовать NFS-серверы, каталоги которых и будут подмонтированы в соответствующие каталоги ftp-сервера.

Существуют слухи об утилите типа mount_ftp, позволяющей просто монтировать каталоги других ftp-серверов.

Если же соседние сервера представляют собой Windows NT, то попробуйте клиентскую часть для SMB, она называется sharity-lite (бывшая rumba).

В случае, когда вам нужно просто перенаправлять запрос на другие ftp-серверы, может подойти какой-нибудь proxy-сервер типа CheckPoint FireWall, умеющий перенаправлять ftp-запросы в зависимости от контекста. Правда, при этом будет происходить обращение ко внутренним серверам, что бывает нежелательно.


7.41 При входе через telnet на некоторый хост перестает работать ввод русских букв, вместо них пишется соответствующая латинская, хотя вывод работает нормально.

В последних версиях FreeBSD по умолчанию telnet работает в семибитном режиме. Поэтому для входа на другую машину нужно использовать команду telnet -8 host, любо поместить строку

default set outbinary в файл .telnetrc в вашем домашнем каталоге.

Можно также поставить из портов приложения telnetx или ssh, последнее даст кроме всего прочего компрессию трафика и обеспечение безопасности.


7.42 Как перенести учетную базу пользователей со старой машины на свежеустановленную систему?

Нужно перенести файлы /etc/master.passwd и /etc/group, затем выполнить команду pwd_mkdb master.passwd.


7.43 Дайте примеры рабочей конфигурации для sudo.

В документации по sudo приведена следующая конфигурация:

root ALL=(ALL) ALL Cmnd_Alias CDROM=/sbin/mount /cdrom,/sbin/umount /cdrom,/usr/site/script/eject,/usr/site/script/close Cmnd_Alias HALT=/sbin/halt,/sbin/reboot User_Alias OP=frank,irene OP ALL=(ALL) NOPASSWD: CDROM,NOPASSWD: HALT

В нем описана группа команд под названием HALT. Есть группа пользователей под названием OP. Дальше: OP (пользователи) ALL=(ALL) (со всех хостов) NOPASSWD: (пароль не спрашивать) CDROM (группа команд CDROM) , (запятая) NOPASSWD: HALT (группа команд HALT без пароля).


7.44 Возможно ли создать процесс, невидимый для ps?

Нет, если только вы не имеете возможности менять семантику системных вызовов (например, через механизм KLD).


7.45 Как избежать вывода дат на русском языке?

Нужно вместо задания LANG=ru_RU.KOI8-R отдельно указать параметры локализации, например для LC_CTYPE и LC_COLLATE


7.46 Как ограничить количество одновременных входов в систему определенным пользователем?

В общий сценарий входа (для оболочки bash это /etc/profile нужно поставить выполнение следующего кода:

MY_NAME=`who am i | awk '{ print $1}'` who | awk '{ print $1}' > $HOME/wholist.tmp

Или следующим образом:

[ `who | grep \`logname\` | wc -l` -gt 2 ] && { echo "Обломись !"; exit; }


Chapter 8 X Window System.

8.1 Невозможно запустить X server с диагностикой xf86OpenSyscons: Cannot open /dev/ttyvX (No such file or directory)

Необходимо, чтобы используемый X Window терминал был _свободен_. Для этого нужно, если он описан в /etc/ttys, выключить запуск getty ключевым словом off, например: ttyv8 "/usr/libexec/getty Pc" cons25r off secure Можно вообще исключить описание этого терминала из /etc/ttys.


8.2 При запуске Russian Winword под эмулятором Wine невозможно прочесть текст в кодировке CP1251.

Wine использует шрифт fixed, поэтому достаточно добавить шрифты с кодировкой CP1251, и сделать их известными системе как fixed в файле fonts.alias.


8.3 Как русифицировать X Window System?

В файл /etc/XFree86Config: XkbRules "xfree86" XkbModel "pc101" XkbKeymap "xfree86(ru)" XkbLayout "ru" XkbOptions "grp:shift_toggle" Выставить локализацию через переменные LANG/LC_ALL.


8.5 Как сделать хранитель экрана в X Window System?

Поставить порт xscreensaver. И не забывать вызывать xlock для блокировки экрана.


8.6 Нужен ftp-клиент для X Window System с докачкой.

Посмотрите на ports/net/pavuk, llnxftp, ls 'packages/All/*ftp* и пробуйте ;) wget работает под X.


8.7 Не получается одновременная работа moused и X Window System.

Программа moused может отдавать события мыши по протоколу Sysmouse, поэтому X Window может воспринимать moused как мышь типа Sysmouse, которая работает с устройством /dev/sysmouse (который должен присутствовать).

Запустив Moused например, так:

moused -p /dev/cuaa0 -t microsoft В X Window нужно указать, что мышь использует протокол SysMouse или MouseSystems, а сама находится на устройстве /dev/sysmouse. В файл /etc/XF86Config: Section "Pointer" Protocol "SysMouse" Device "/dev/sysmouse"

Если у вас мышь не PS/2, попробуйте указать в /etc/XF86Config в качестве указательного устройства не /dev/mouse, а /dev/sysmouse.


8.9 Что такое xrus и зачем он нужен?

xrus - это русификатор X Window. Алгоритм его работы сводится к замене таблиц символов, поэтому он должен работать практически везде, в том числе и в старых реализациях XFree86, где отсутствовала штатная поддержка русского языка (Xkb) или при использовании X терминалов сторонних фирм. находится в портах ports/russian/xrus(?)


8.10 Не работает ввод русских букв в xterm, запущенном на локальной консоли в XFree86.

Это связано с ошибкой локализации в дистрибутиве X Window, поставляемой с 2.2.8-RELEASE. xterm ищет файлы локализации в каталоге ${X11BASE}/lib/X11/locale, а например, ports/russian/X.language, устанавливает их в ${X11BASE}/lib/X11/nls. Соответственно нужно просто переписать файлы локализации в нужный каталог.

Самый простой способ: Закомментарить в файле ${X11BASE}/lib/X11/locale/koi8-r/XLC_LOCALE строчку encoding_name KOI8-R

Если вы можете пересобрать XFree86 из портов, то должен помочь следующий патч:

- --- lib/X11/imConv.c Sat Oct 24 09:50:13 1998 +++ lib/X11/imConv.c.new Thu Dec 3 18:20:07 1998 @@ -429,7 +429,7 @@ #endif {sUTF8, "utf8", "\033%B"}, /* Non-standard */ - {sCyrillic, "KOI8-R", "\033%/1\200\210koi8-r\002"}, + {sKoi8, "KOI8-R", "\033%/1\200\210koi8-r\002"}, {sLatin9, "ISO8859-15", "\033%/1\200\213iso8859-15\002"},/* a.k.a. Latin-0 */ };

Нужно просто положите его в /usr/ports/x11/XFree86/patches и пересобрать XFree86.

Еще способ: Изменить в /etc/XF86Config строчку XkbLayout с su на ru

Еще один способ: Запускать xterm, не имея установленных значений для LANG/LC_ALL

Есть предположение, что xterm в locale.aliases ищет первое минимальное соответствие на LANG, в случае ru бралось ISO. Нужно изменить запись для ru на нужное (koi8-r).


8.11 Не выполняется вход в X Window System. После запроса имени пользователя и ввода правильного пароля ничего не происходит.

Скорее всего, у вас пустой сценарий начала сеанса работы с X Window. Посмотрите содержимое файлов .xsession-errors и .xsession, а также обратите внимание на то, что скрипт .xsession должен быть выполняемым.


8.12 Работает ли XFree86 с адаптером Banshee?

Этот адаптер построен на основе микросхем от 3Dfx Interactive и в настояще время XFree86 его не поддерживает.


Chapter 9 Прикладное программное обеспечение.

9.1 Где взять ПО для FreeBSD?

Большое количество ПО для FreeBSD, как впрочем, и для любого другого UNIX, распространяется в исходных текстах, проблемой является необходимость подгонки и компиляции его под FreeBSD. Для облегчения этой задачи было введено понятие пакаджа - уже откомпилированного и готового к инсталляции архива с программным обеспечением. В настоящее время количество пакаджей для FreeBSD приближается к 2000 и находится в каталоге packages соответствующей версии FreeBSD, например ftp://ftp.freebsd.org/pub/FreeBSD/2.2.2-RELEASE/packages


9.2 Как лучше ставить приложения - из портов или из пакаджей?

Плюс пакаджей - простота установки. Их минус - они не всегда работают правильно (такое было с S/Key в sudo, dhcpd от ISC, squid). Более правильно ставить дерево портов, регулярно производить его обновление через CVSup и компилировать всё нужное самим. Кстати, при этом можно выявить ошибки, сделанные при создании порта и сообщить об этом в соответствующие органы через send-pr(1). При построении приложений через ports нужно не забыть делать CVSup и для /usr/share/mk/ - там находятся make-файлы, необходимые для компиляции порта.


9.4 Пакаджи находятся на FAT-разделе диска, естественно, с обрезанными именами файлов. Необходимо произвести инсталляцию.

Замонтировав раздел, Выполнять команду pkg_add -v имя файла с пакаджем Есть неудобство - если пакадж фигурирует как зависимость, то он проинсталлирован не будет.


9.6 После установки нового программного обеспечения (как посредством утилиты pkg_add в FreeBSD, так и простого переписывания бинарников в соответствующие каталоги), система отказывается его запускать, хотя каталоги включены в маршрут поиска.

Это - недостаток командного процессора, который кэширует имена доступных файлов при запуске, но не во время работы. Команда "hash -r" (для bash) или "rehash" для csh/tcsh выполняет повторное кэширование.


9.7 Плохо ставятся пакаджи из sysinstall, хотя при ручном их добавление pkg_add все нормально.

Такое случается при установки пакаджей с диска Win95, для случая DOS имеется файл trans.tbl.


9.8 Каков формат файла паролей WWW сервера apache?

<Имя пользователя>:<Зашифрованный пароль>


9.9 Чем шифровать пароли для пользователей WWW сервера apache?

В дистрибутиве (но не в пакадже) apache в каталоге support есть утилита htpasswd, именно для этого и предназначенная. Если дистрибутива нет под рукой, временным решением проблемы может быть простое переписывание шифрованных паролей из учетной базы пользователей (видны привилегированному пользователю при редактировании последней). ??? master.passwd


9.11 Какие SQL сервера есть под FreeBSD?

1) MicroSQL ftp://ftp.bond.edu/pub/Minerva/msql 2) MySQL http://www.tcx.se, ftp://www.tcx.se Имеется ODBC для Win95/NT/UNIX, JDBC, интерфейс с perl, C, C++ Отсутствуют REFERENCES. Некоторые ограничения по коммерческому использованию. 3) PosgreSQL http://www.posgress.org/ ??? 4) Informix 7.24 для Linux работает в 3.0-RELEASE+linuxlib-2.6 5) Oracle 8 для Linux работает в 3.0-CURRENT+linuxlib Имеются слухи о переносе Oracle8i под FreeBSD. Взять можно на www.oracle.com trial-версию. 6) InterBase 4.0 на сервере http://iblinux.rios.com.jp/intl/ Правда, udf нужно компилировать с ключом -aout (elf не поддерживается)


9.12 Невозможен запуск приложений, предназначенных для FreeBSD 2.2.1 и выше с диагностикой "libc.so.3.0"

A. Как правило, достаточно выполнить команды ln -s /usr/lib/libc.so.2.2 /usr/lib/libc.so.3.0 ldconfig -m


9.13 Необходима утилита командной строки для ftp, для фоновой выкачки файлов.

A. В дистрибутиве - fetch. Также в состав пакаджа net/lftp входит утилита ftpget.


9.14 Есть ли проблемы с безопасностью у www/apache?

Да. Рекомендуется ставить последнюю версию (1.1.3).


9.15 Можно ли сделать из FreeBSD сервер Netware?

Да. Существует коммерческий продукт - NetCon, эмулирующий сервера Novell Netware 3.x

В коллекции портов находится mars_nwe - свободно распространяемая реализация эмулятора сервера Novell Netware 3.x. Также вышла в свет nwlib. Там есть одна тонкость - этот эмулятор работает с протоколом IPX поверх фрейма Ethernet_II, что требует некоторой настройки на рабочей станции. Берется на ftp://ftp.butya.kz/pub/mars_nwe


9.18 Программы, использующие библиотеку libvgl и работающие на консоли в графическом режиме, корректно не работают.

Для запуска подобных программ нужно иметь права на запись в устройство /dev/mem.


9.19 В deco при просмотре файла вместо русских букв - транслитерация.

Клавишей F3 можно переключаться между режимами 7/8 бит. По умолчанию deco просматривает файл в 7-битном режиме.


9.20 Как русифицировать виджеты в Netscape Navigator 4.5?

Нужно файл Netscape.ad поместить в каталог /usr/X11R6/lib/X11/app-defaults под именем Netscape. и поменять везде шрифты на крониксовские koi8-r. Просто менять версию не всегда получается (правда, для версий 4.0X это проходит).


9.22 Присоветуйте божеский текстовый редактор.

/usr/ports/editors/le pico из дистрибутива pine. Стандартный ee. В своё время существовала версия редактора MIM (Микромир) для VAX, UNIX (под названием наномир) на мехмате, но судьба его неизвестна :( Редактор МикроМир можно найти на его домашней странице. Существует версия под названием НаноМир для текстового режима и МикроМир для X Window.


9.23 Где взять серверную часть игры Quake?

Сервер для Quake I имеется в коллекции портов.

Должна подойти версия для Linux. Ссылка и информация по установке есть на сервере quake.demos.su. Также попробуйте www.quake2.ru. И еще http://www.3dgw.com/hellsgates/serverguide.htm А также quake.rtsnet.ru И еще http://www.atomigate.com:80/quake/server/ ftp://vsis.miem.edu.ru Из /usr/local/etc/rc.d запускается quake2.sh: #!/bin/sh cd /usr/local/quake2 quake2 +set dedicated 1 +exec server.cfg & server.cfg настраивается, например, так: set timelimit 20 set maxclients 16 set dmflags 280084 set sv_maplist "q2dm1 q2dm2 q2dm3 q2dm4 q2dm5 q2dm6 q2dm7 q2dm8" set gamename yamalinfo map q2dm1

Некоторая информация есть на сервере www.planetquake.com, там же можно найти и сервер.

Существует также версия сервера для BSD/OS, которая должна работать во FreeBSD.


9.24 Как установить Oracle SCO/Linux на FreeBSD?

Информация по этому вопросу имеется на сервере Ассоциации Русскоязычных Пользователей FreeBSD.


9.25 Требуется сделать систему автодозвона с передачей голосовых сообщений.

Если делать самим, потребуется разобраться с mgetty и её голосовыми возможностями и голосовыми возможностями модема. Есть трудность распознавания человека на той стороне. Можно попробовать Dialogic: http://www.comptek.ru/telephony/turn_key_list.html#104 и вообще http://www.comptek.ru/telephony/


9.26 В Netscape Communicator 4.5 черно-белые кнопки.

Нужно уменьшить значение DefaultColorDepth в файле /etc/XF86Config


9.27 Какое программное обеспечение FTN можно использовать?

Есть два варианта:

  • QEcho/QDed + Ifcico/binkd

  • Ifmail+INN+TIN




9.28 Какого ftp-клиента для Win95 посоветуете?

WS_FTP Pro - самый быстрый и можно видеть скорость прокачки. В FAR также встроен ftp-клиент.


9.29 В редакторе vi русские символы вводятся как коды типа \xf3\xe1\xed\xef.

Корректно выполните локализацию (русификацию).


9.30 Есть ли программы, подобные StarOffice/Linux, для FreeBSD?

Под FreeBSD в режиме эмуляции Linux прекрасно работает WordPerfect, StarOffice 3. Есть сообщения о запуске StarOffice 4.

StarOffice 5 работает под 3.0-stable и 3.0-current в режиме эмуляции Linux. Ядро должно быть откомпилировано с опцией COMPAT_LINUX_THREADS. Другой вариант - Applix Office.

Посмотрите в коллекции портов.

Попробуйте запустить другие пакеты в режиме эмуляции Linux или SCO.

Есть также бесплатный набор KOffice: http://www.kde.org/koffice


9.31 В журнале ошибок apache зачастую появляются сообщения о попытках запросить файл robots.txt. Кому и зачем он нужен?

Этот файл содержит правила (Robot Rules) исключений для различных роботов индексации, поиска или зеркалирования веб-серверов.

Стандарт, описывающий содержимое этого файла, можно найти по адресу http://info.webcrawler.com/mak/projects/robots/norobots.html


9.32 Каким образом можно организовать доступ к MS SQL?

Существует открытая реализация протокола, используемого в MS SQL. http://matalab.unc.edu/freetds/

Согласно описанию, является библиотекой для работы с MS SQL и Sybase по протоколу TDS 4.2 и 5.0.


9.33 Как настроить сервер Quake-2?

Последовательность действий такова: 1. тяни с ftp.idsoftware.com линуховый дистрибутив 2. прикрути к фре поддержку линуховых бинариков (/usr/ports/emulators/linux_lib) 3. просмотри фак на http://www.atomicage.com/quake/server для ознакомления 4. перепиши с сидюка дистрибутива кваки из \install\data\baseq2 в /usr/local/games/quake2/baseq2 все файлы (придется пожертвовать метров 200 на это добро) 5. распакуй линуховый дистрибутив в /usr/local/games/quake2 5. создай простенький server.cfg и помести его в /usr/local/games/quake2/baseq2 (пример конфига валяется рядом с тем же факом из п. 3.) 6. запускай и наслаждайся ./quake2 +set dedicated 1 +exec server.cfg & бегает на 120'ом пне, 16метров без напряга на 3.0.0R


9.36 После перезагрузки squid стал вести себя странно: занял всю виртуальную память, что привело к неработоспособности системы.

Запортился файл swap.state, нужно его удалить и перезапустить squid (возможно, для этого потребуется перезагрузка в однопользовательском режиме). squid должен будет заново восстановить этот файл, что займет некоторое время.


9.38 Не удается заставить webglimpse понимать русские буквы.

Убедитесь, что кодировка, приходящая от клиентов, совпадает с той, на которую настроен webglimpse и она совпадает с кодировкой документов. Это может делать, например, русский Apache.

Поставьте glimpse версии минимум 4.1, собранный с поддержкой locale (посмотрите в Makefile значение для ISO_CHAR_SET, которое должно быть равным 1). Если вы храните документы в кодировке CP1251, то у вас должна иметься соответствующая настройка для locale.

На www.tu-chel.ac.ru работает именно webglimpse.


9.39 Где найти irc с поддержкой socks?

socks4 поддерживается, например, в ircii-EPIC.004 При компиляции нужно задать параметр --with-socks


9.40 Нужны перекодировщики русских текстов.

Посмотрите в коллекции портов раздел russian, рекомендуется ru-d1489-1.3 либо trans-1.20.


9.42 Подскажите набор утилит для разработчика.

XEmacs. Есть русский консольный редактор yui. Попробуйте также xwpe или fte.

Есть также люди, использующие несколько окон xterm и Netscape Navigator для чтения документации.

Обратите внимание на Code Crusader: http://www.its.caltech.edu/~jafl/jcc/ "Code Crusader is a complete code development environment, inspired by MetroWerks CodeWarrior. It can run on any UNIX machine that uses the X Window System..."


9.43 Никогда не смогу научиться работать с редактором vi.

В коллекции портов есть vilearn - самоучитель работы в редакторе vi. Есть также редактор vim - Vi IMproved, считающийся более удобным в использовании (есть возможность цветового выделения конструкций, запуск компилятора и тд).


9.44 Какой тип терминала нужен для работы deco, yui, bml и прочих?

Ниже приведено описание терминалов, в которых deco будет выводить цвет, русские буквы и рамочки.

pcOL|OLD PC:\ :li#24:co#80:am:bs:bw:eo:\ :cd=\E[J:ce=\E[K:cl=\Ec:cm=\E[%i%2;%2H:do=\E[B:ho=\E[;H:\ :nd=\E[C:up=\E[A:\ :md=\E[3;14x:mr=\E[3;48x:mb=\E[3;142x:me=\E[0m\E[3;7x:\ :so=\E[3;48x:se=\E[3;7x:\ :us=\E[3;15x:ue=\E[3;7x:\ :vs=\E[3;7x:ve=\E[3;7x: pc3koi:\ :C2:Nf#16:Nb#8:Cf=\E[3;%p2%{16}%*%p1%+%dx:\ :gs=:ge=:\ :ac=l\332q\304k\277x\263j\331m\300w\302u\264v\301t\303n\305:\ :g1=\200\201\204\211\205\206\213\207\202\210\203:\ :f1=\E[M:f2=\E[N:f3=\E[O:f4=\E[P:f5=\E[Q:\ :f6=\E[R:f7=\E[S:f8=\E[T:f9=\E[U:f0=\E[V:\ :kh=\E[H:kN=\E[G:kP=\E[I:kH=\E[F:kI=\E[L:\ :kb=^h:kh=\E[H:ku=\E[A:kd=\E[B:kl=\E[D:kr=\E[C:\ :kN=\E[G:kP=\E[I:kI=\E[L:li#25:sr=\E[T:sf=\E[S:tc=pcOL:

Судя по всему, достаточно таких строк:

:C2:Nf#16:Nb#8:Cf=\E[3;%p2%{16}%*%p1%+%dx:

Инструкция: в .profile : export TERM=ansi export TERMCAP=/etc/termcap в /etc/termcap закомментировать : #ansi|any ansi terminal with pessimistic assumptions:\ # :co#80:li#24:cl=50\E[;H\E[2J:bs:am:cm=\E[%i%d;%dH:\ # :nd=\E[C:up=\E[A:ce=\E[K:ho=\E[H:pt: вместо родного поставить это : ansi|IBM PC BSD/386 Console:\ :li#25:co#80:am:bs:bw:eo:\ :al=\E[L:Al=\E[%dL:bl=\007:cd=\E[J:ce=\E[K:\ :cl=\Ec:cm=\E[%i%d;%dH:dl=\E[M:DL=\E[%dM:do=^J:DO=\E[%dB:ho=\E[H:\ :k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:\ :k7=\E[S:k8=\E[T:k9=\E[U:k0=\E[V:\ :kI=\E[L:kH=\E[F:kN=\E[G:kP=\E[I:kd=\E[B:kh=\E[H:kl=\E[D:km:kr=\E[C:\ :ku=\E[A:le=^H:LE=\E[%dD:mb=\E[5m:md=\E[1m:me=\E[0m:\ :mh=\E[=8F:mr=\E[7m:nd=\E[C:pt:rc=\E[=u:RI=\E[%dC:sc=\E[=s:se=\E[0m:\ :so=\E[7m:up=\E[A:UP=\E[%dA: в /usr/lib/deco/termcap : # Standard Xenix console. 232 -gor cherta # It is not true ansi, but has been hacked for dumb users. ansi|xenix:g2=\215\172\210\112\174\214\216\171\211\213\173:\ :g1=\234\213\230\231\261\277\235\214\262\232\227:\ :C2:Nf#16:Nb#8:Mf=042615378CAE9DBF:Mb=04261537:\ :Cf=\E[%p1%{8}%/%d;3%p1%{8}%m%d;4%p2%dm:fs=\E[m:\ :kI=\E[L:kH=\E[F:kd=\E[B:kN=\E[G:kl=\E[D:\ :kr=\E[C:kh=\E[H:ku=\E[A:kP=\E[I:kD=\177:\ :f1=\E[M:f2=\E[N:f3=\E[O:f4=\E[P:f5=\E[Q:\ :f6=\E[R:f7=\E[S:f8=\E[T:f9=\E[U:f0=\E[V:tc=ansi # for helga.exe ansi telnet for win95 helga|xenix:g1=\224\203\220\221\251\223\225\204\252\222\217:\ :C2:Nf#16:Nb#8:Mf=042615378CAE9DBF:Mb=04261537:\ :Cf=\E[%p1%{8}%/%d;3%p1%{8}%m%d;4%p2%dm:fs=\E[m:\ :kI=\E[L:kH=\E[F:kd=\E[B:kN=\E[G:kl=\E[D:\ :kr=\E[C:kh=\E[H:ku=\E[A:kP=\E[I:kD=\177:\ :f1=\E[M:f2=\E[N:f3=\E[O:f4=\E[P:f5=\E[Q:\ :f6=\E[R:f7=\E[S:f8=\E[T:f9=\E[U:f0=\E[V:tc=ansi в /etc/rc.local : stty -D -f /dev/console cs8 -parenb -istrip stty -D -f /dev/ttyc2 cs8 -parenb -istrip stty -D -f /dev/ttyc3 cs8 -parenb -istrip stty -D -f /dev/ttyc4 cs8 -parenb -istrip stty -D -f /dev/ttyc5 cs8 -parenb -istrip vgafont /usr/share/vgafont/cyrillic export VGAFONT=/usr/share/vgafont/cyrillic export TERMCAP=/etc/termcap


9.45 Надоело переключаться на латинские буквы для передвижения курсора в редакторах vi/vim.

Попробуйте выполнить следующее:

map Я Z map к r map К R map ш i map Ш I map щ o map Щ O map в d

Можете добавить такие команды в .vimrc


9.46 Как в squid отрезать рекламные баннеры?

Можно пpосто запpетить достyп к баннеpным хостам. Делается это следующим образом:

  1. В файл squid.conf:

    acl reclama url_regex "/usr/local/squid/etc/banners.deny" http_access deny reclama

  2. В файл banners.deny записываются адpеса в виде:

    ^http://kulichki.rambler.ru/banners/



Это все. Остается только пополнять список рекламных серверов.

Другой способ заключается в использовании редиректора, который перенаправляет запросы к баннерным хостам на собственную маленькую каpтинку-баннеp, которая, например, может являться надписью "Hикаких баннеpов!". Детали реализации этого подхода (вместе со списком заткнутых pекламных URL и сайтов с поpнографией) можно выяснить у Олега Рамазанова


9.47 Посоветуйте о применяемых методах ограничения доступа к нежелательным сайтам в squid.

  • Чтобы не было доступа к серверам по IP-адресу:

    acl IPaddrURLs url_regex tp://[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+[:/] http_access deny IPaddrURLs

  • нехорошие сайты блокируются посредством брандмауэра, например

    ipfw add deny all from any to www.porno.com

    нехорошие страницы (они есть и на вполне нормальных сайтах) -- squid'ом.

  • В squid.conf:

    acl PornoHosts dstdomain "/usr/local/etc/squid/Porno.Host.lst" acl PornoURLs url_regex "/usr/local/etc/squid/Porno.URL.lst" acl LegalURLs url_regex "/usr/local/etc/squid/Legal.URL.lst" acl IPaddrURLs url_regex tp://[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+[:/] http_access deny !LegalURLs PornoHosts http_access deny !LegalURLs PornoURLs http_access deny !LegalURLs IPaddraURLs

    Тогда в тех pедких случаях, когда у ноpмального сеpвеpа нет имени, либо у ноpмальной стpанички стpанное имя, ничего не мешает занести их в LegalURLs

Заметьте, что использование regex типа

acl adults utl_regex xxx sex porn adult lips не всегда эффективно, так как может встретиться название типа http://www.windowSEXpo.com/

Более эффективно отсечение (.*sex[\.\/])|([\.\/]sex.*)

Однако абсолютно защититься от такого трафика техническими средствами невозможно (порнография может быть помещена и на сервер www.freebsd.org ;), более эффективным являются административные меры воздействия после предоставления журнала squid руководству.


9.48 Как русифицировать StarOffice?

Ссылка на подробную инструкцию имеется по адресу http://xtalk.price.ru/linux.

Почитайте также рекомендации Демидова.

StarOffice лучше ставить из портов.


9.49 Не работает PostgreSQL, образуя файл core при попытке работать с базой посредством createuser.

Скорее всего, вам нужно добавить в конфигурационный файл ядра опцию

option SYSVSHM option SYSVSEM option SYSVMSG

Не забудьте также проинициализировать базу командой initdb


Chapter 10 Электронная почта и телеконференции.

10.1 Как сделать почтового робота?

Способ первый. В файле /etc/aliases прописать robot: "| /usr/local/bin/robot" Здесь /usr/local/bin/robot - программа, на вход которой будут подаваться письма, написанные в адрес robot@localhost. Будьте осторожнее с правами на запуск этой программы! рекомендуется --x--x--- root:wheel Не забудьте newaliases Способ второй. Заводится пользователь robot, у которого в файле $HOME/.forward имеется строчка "| /usr/local/bin/robot" Способ третий. Использовать комбинацию первых двух с procmail - специально для этого предназначенной утилитой.


10.3 Как настроить UUCP?

Подробное руководство есть на ftp://ftp.dtu.tsu.ru/pub/uucpfaq.txt


10.5 Как ifcico прикрутить к mgetty?

Нужно при компиляции mgetty задать -DFIDO.


10.6 Можно ли в INN запретить посылку сообщений в конференции?

Эта возможность появилась в INN версии 2.3 (в том числе и experimental) и задается в файле readers.conf.


10.8 Как в sendmail разрешить прием почты от всех машин доменов xxx.ru, yyy.ru и хоста xxx.zzz.ru?

Нужно прописать эти домены и хост в файле /etc/mail/relay-domains или /etc/mail/access

Посмотрите также документацию по sendmail в файле sendmail/cf/README из дистрибутива sendmail.


10.10 Чем можно делать статистику почты sendmail?

Существует некий unlog.

Посмотрите на ftp://ftp.moldsat.md/pub/unix/perl/sendmail-log-analizer

Подобные скрипты есть на www.isp-unix.com

Можно писать и самим по логам, копящимся в файлах /var/log/maillog. Hапример, общее число писем, прошедших через sendmail за отчётный период, считается примерно так:

zcat /var/log/maillog*z | cat /var/log/maillog - | \ awk '/sendmail/{print $6}' | sort | uniq | wc -l

Евгений Кузаков предложил следующий вариант:

Взял патч Бармина к сендмаилу где-то тут... Только он для 8.8.5. прикрутил его для 8.9.3. компиляешь сендмаила с -DMAILACCT В итоге сендмаил пишет лог в /var/log/mailacct в формате: sun.oracle.ru!ru.oracle.com!vchernov LOCAL!piv 1455 17:54:49 21.09.98 sun.oracle.ru!ru.oracle.com!vchernov LOCAL!zdg 1455 17:54:49 21.09.98 А потом с тим можно делать что угодно... Например: #!/bin/sh if [ $# -lt 3 ]; then echo Usage: $0 maildomain month year printf "\tExample: $0 occ.ru 01 98\n\n" exit fi case "$2" in "01") monthname="Январь";; "02") monthname="Февраль";; "03") monthname="Март";; "04") monthname="Апрель";; "05") monthname="Май";; "06") monthname="Июнь";; "07") monthname="Июль";; "08") monthname="Август";; "09") monthname="Сентябрь";; "10") monthname="Октябрь";; "11") monthname="Ноябрь";; "12") monthname="Декабрь";; *) echo "Ну Вы, барин, даете..."; exit 1;; esac domain="$1" month="$2" year="$3" statfile=/var/log/mailacct #statfile=./mailacct awk ' BEGIN{ tos=0 toc=0 froms=0 fromc=0 } { if((index($0,domain)!=0)&&(index($5,sprintf("%s.%s",month,year))!=0)){ if((index($1,domain)!=0)){ fromc=fromc+1 froms=froms+$3 }else{ toc=toc+1 tos=tos+$3 } } } END { printf("Статистика домена %s за %s %s:\n",domain,monthname,year) printf("\tпришло почты на домен: %2.0f писем (%0.0f bytes)\n",toc,tos) printf("\tотправлено с домена: %2.0f писем (%0.0f bytes)\n",fromc,froms) }' domain=$domain month=$month year=$year < $statfile monthname=$monthname Пример: ./mailstat occ.ru 03 99 Статистика домена occ.ru за Март 99: пришло почты на домен: 2783 писем (66523770 bytes) отправлено с домена: 353 писем (72424444 bytes)


10.11 Как сделать виртуальный почтовый сервер?

Это делается через virtusertable. Подробное описание есть в журнале UNIXoid. по адресу http://www.fima.net


10.12 После обрыва связи уже забранная почта остается в почтовых ящиках пользователей, поэтому её не удается скачать полностью

Эта ситуация связана с особенностями функционирования сервера POP3. Клиент (как правило, Internet Mail или Outlook Express) может выдавать команды на выдачу списка писем, забор определенного письма, удаление письма и завершение сеанса работы. Однако реальное удаление письма из почтового ящика происходит только после корректного завершения сеанса работы с сервером POP3.

Конечно, должны быть клиенты, которые отслеживают списки писем и не скачивают повторно уже забранное сообщение. Как утверждается, таким правильным клиентом является Eudora, TheBat!, Pegasus Mail.

Outlook Express нужно настроить следующим образом: Advanced->Оставлять почту на сервере. В этом случае Outlook Express хранит списки скачанных писем и все работает так, как надо.

Netscape настраивается подобным же образом.

Кардинальным решением проблемы является использование протокола IMAP для доступа к почтовым ящикам пользователей (поддерживается программой Outlook Express). В портах есть imap-uw


10.13 Как правильно перезапустить sendmail?

Правильно так:

kill -HUP `head -1 /var/run/sendmail.pid`

Однако если при запуске sendmail не был указан его полное имя с каталогами, то sendmail не перезапускается. Такое поведение отмечалось во FreeBSD 2.2.2. В таком случае нужно его запустить снова вручную:

/usr/sbin/sendmail -bd -q30m

Chapter 11 Программирование.

11.1 Как определить порядок следования байтов (BIG_ENDIAN или LITTLE_ENDIAN)?

Посмотрите файл /usr/include/machine/endian.h Псевдопеременная BYTE_ORDER определена как BIG_ENDIAN или LITTLE_ENDIAN в зависимости от архитектуры машины.

#ifdef __FreeBSD__ #include <machine/endian.h> #endif ... if(BYTE_ORDER == BIG_ENDIAN) ...

11.2 В программе порождается много дочерних процессов, часть из которых, завершив свою работу по получению сигнала, остаются как zombie. Как от них избавиться?

В родительском процессе нужно отрабатывать сигнал SIGCHLD. Это подробно описано в FAQ, который можно взять по адресу http://www.erlenstar.demon.co.uk/unix/faq_toc.html в разделе catching SIGCHLD. Копия есть по адресу http://www.nsu.ru/~ser/unix.prg.faq/unix/faq_toc.html


11.3 Поделитесь примером драйвера устройства, пожалуйста.

Вот исходный текст драйвера некоего контроллера:

/* * Power controller (c) 1998, vadik likholetov vadik@sensi.org Hardware by * Alexandr Priomov, alexandr@sensi.org */ #include "pwc.h" #include <sys/param.h> #include <sys/systm.h> #include <sys/kernel.h> #include <sys/conf.h> #include <sys/uio.h> #include <i386/isa/isa.h> #include <i386/isa/isa_device.h> #include <i386/isa/lptreg.h> static struct pwc_softc { int sc_port; short sc_state; int hw_state; } pwc_sc[NPWC]; #define TASK_SIZE 12 #define DEFAULT 0 /* default state for device */ #define OPEN (1<<0) /* device is open */ #define OBUSY (1<<1) /* doing output */ #define OPENDING (1<<2) /* pending output */ static int pwc_probe(struct isa_device * dvp); static int pwc_attach(struct isa_device * isdp); struct isa_driver pwcdriver = { pwc_probe, pwc_attach, "pwc" }; static d_open_t pwc_open; static d_close_t pwc_close; static d_write_t pwc_write; #define CDEV_MAJOR 220 static struct cdevsw pwc_cdevsw = {pwc_open, pwc_close, noread, pwc_write, noioctl, nullstop, nullreset, nodevtotty, seltrue, nommap, nostrat, "pwc", NULL, -1}; int pwc_probe(struct isa_device * dvp) { /* TODO -- test hardware for presence */ return 1; } int pwc_attach(struct isa_device * isdp) { struct pwc_softc *sc; int unit = isdp->id_unit; sc = pwc_sc + unit; sc->sc_port = isdp->id_iobase; sc->sc_state = DEFAULT; outb(sc->sc_port, 0); outb(sc->sc_port + lpt_control, 0); return 1; } static int pwc_open(dev_t dev, int flags, int fmt, struct proc * p) { struct pwc_softc *sc; u_int unit = minor(dev); sc = pwc_sc + unit; if ((unit >= NPWC) || (sc->sc_port == 0)) return ENXIO; if (sc->sc_state != DEFAULT) return EBUSY; return 0; } static int pwc_close(dev_t dev, int flags, int fmt, struct proc * p) { struct pwc_softc *sc = pwc_sc + minor(dev); sc->sc_state &= ~OPEN; while (sc->sc_state & OBUSY) if (tsleep((caddr_t) sc, PZERO | PCATCH, "pwcclose", hz) != EWOULDBLOCK) break; sc->sc_state = DEFAULT; return 0; } static int pwc_write(dev_t dev, struct uio * uio, int ioflag) { struct pwc_softc *sc = pwc_sc + minor(dev); char buffer[TASK_SIZE]; int port = sc->sc_port; int s; int ret; int i, j, d; if (uio->uio_resid != TASK_SIZE) return EOPNOTSUPP; s = spltty(); if (sc->sc_state & OBUSY) return EBUSY; sc->sc_state |= OBUSY; splx(s); /* output goes there */ uiomove(buffer, TASK_SIZE, uio); if (!(inb(port + lpt_status) & ~LPS_NACK)) { printf("pwc%d: no power on device\n", minor(dev)); ret = EIO; goto gout; } #define NTRIES 10 for (i = 0; i < TASK_SIZE; i++) { for (j = 0; j < NTRIES; j++) if ((inb(port + lpt_status) & LPS_NBSY)) break; else DELAY(1); if (j == NTRIES) { printf("pwc%d: timeout(1) waiting for ~BSY (%x)\n", minor(dev),inb(port+lpt_status)); ret = EIO; goto gout; } d = buffer[i] == '1' ? 1 : 0; if (i > 3 && i < 8) i ^= 1; outb(port + lpt_data, d); outb(port + lpt_control, LPC_STB); DELAY(1); /* ??? */ outb(port + lpt_control, 0); } for (j = 0; j < NTRIES; j++) if (inb(port + lpt_status) & LPS_NBSY) break; else DELAY(1); if (j == NTRIES) { printf("pwc%d: timeout(2) waiting for ~BSY\n", minor(dev)); ret = EIO; goto gout; } ret = 0; gout: s = spltty(); sc->sc_state &= ~OBUSY; #if 0 if (sc->sc_state & OPENDING) #endif wakeup((caddr_t) sc); splx(s); return ret; } static pwc_devsw_installed = 0; static void pwc_drvinit(void *unused) { dev_t dev; if (!pwc_devsw_installed) { dev = makedev(CDEV_MAJOR, 0); cdevsw_add(&dev, &pwc_cdevsw, NULL); pwc_devsw_installed = 1; } } SYSINIT(pwcdev, SI_SUB_DRIVERS, SI_ORDER_MIDDLE + CDEV_MAJOR, pwc_drvinit, NULL)

11.4 При чтении из stdin, который на самом деле является последовательной линией связи, читаются не все символы.

Проверьте коммуникационный адаптер какой-либо терминальной программой (tip, cu). Если с портом все в порядке, то скорее всего, вы забыли перевести поток в raw-режим. Посмотрите страницы Справочника по terminfo, stty.

Для эффективной работы также посмотрите системный вызов poll/select.


11.5 Нужен cgi-скрипт для отслеживания доступности хоста.

#!/bin/sh export PATH=/bin:/usr/bin:/usr/local/bin trap "" 2 3 ulimit -c 0 line=`head -1` line=`echo "$line" | cut -s -f2- -d= | hex2char | head -1 | valid N 40` if [ "$line" != "" ]; then echo -e "Content-type: text/html\n\n<HTML>\n<TITLE>Traceroute to $line</TITLE>\n" echo -e "<body>\n<h3>Traceroute to $line:</h3>\n<pre>\n" traceroute "$line" 2>&1 echo -e "\n</pre>\n</body>\n</html>" else echo -e "Content-type: text/html\n\n<HTML>\n<TITLE>Error</TITLE>\n" echo -e "<body>\n<h3>ERROR: No target specified.</h3>\n" echo -e "\n</body>\n</html>" fi

11.6 Как подсчитывается CRC32?

Ниже приведены тексты программы для подсчета CRC32 заданного файла.

----------------------------------------------- crc.h typedef unsigned char uchar; /* 8 bits or more */ typedef unsigned int uint; /* 16 - 32 bits or more */ typedef unsigned short ushort; /* 16 bits or more */ typedef unsigned long ulong; /* 32 bits or more */ typedef ulong UCRC; /* CRC-32 */ #define CRC_MASK 0xFFFFFFFFUL extern UCRC crc; ----------------------------------------------- crc.c #include <stdio.h> #include "crc.h" #include <stdlib.h> /* Global variables */ UCRC crc; FILE *fp; #define BUFFERSIZE 32768U #define CRCPOLY 0xEDB88320UL /* 1110 1101 1001 1000 1000 0011 0010 0000 */ #define UPDATE_CRC(crc, c) \ crc = crctable[(uchar)crc ^ (uchar)(c)] ^ (crc >> 8) static UCRC crctable[256]; static void make_crctable( void ) { uint i, j; UCRC r; for (i = 0; i <= 255; i++) { r = i; for (j = 8; j > 0; j--) { if (r & 1) r = (r >> 1) ^ CRCPOLY; else r >>= 1; } crctable[i] = r; /* printf( "%08lx ", crctable[i] ); if( i % 8 == 7 ) printf( "\n" ); */ } } int main( int argc, char *argv[] ) { size_t len; char *buffer, *sav; if ( argc != 2 ) { printf("Usage: CRC32 <File_Name>\n" ); return 1; } if ( ( fp = fopen( argv[1], "rb" ) ) == NULL ) exit(1); make_crctable(); crc = CRC_MASK; buffer = (char *) calloc( BUFFERSIZE,1 ); sav = buffer; while ( ( len = fread(buffer,1,BUFFERSIZE,fp) ) > 0 ) { while ( len-- ) UPDATE_CRC( crc, *buffer++ ); buffer = sav; } free(buffer); len = (unsigned int)(crc>>16); printf( "File = %13s CRC32 = %04x%04x\n", argv[1], (int)~len, (int)~crc ); fclose( fp ); flushall(); return 0; }

11.7 Как передать данные из формы в вызываемый CGI-скрипт, написанный на shell?

Например, следующим образом можно вывести информацию о полученном запросе:

#!/bin/sh echo Content-type: text/plain echo echo CGI/1.0 test script report: echo echo argc is $#. argv is "$*". echo echo SERVER_SOFTWARE = $SERVER_SOFTWARE echo SERVER_NAME = $SERVER_NAME echo GATEWAY_INTERFACE = $GATEWAY_INTERFACE echo SERVER_PROTOCOL = $SERVER_PROTOCOL echo SERVER_PORT = $SERVER_PORT echo REQUEST_METHOD = $REQUEST_METHOD echo HTTP_ACCEPT = "$HTTP_ACCEPT" echo PATH_INFO = "$PATH_INFO" echo PATH_TRANSLATED = "$PATH_TRANSLATED" echo SCRIPT_NAME = "$SCRIPT_NAME"

Однако для написания CGI-скриптов лучше использовать Perl совместно со специально предназначенным для этого модулем CGI.pm.


11.8 Как пеpеназначить в файл, в сокет или в конвейер вывод пpоцесса, запyскаемого по exec() ?

Это можно сделать так:

if (fork()) // тот из них, который child { dup(1,Handle); // могy перепyтать порядок аргyментов dup(0,Handle); // но надо сделать childoвы 0 и 1 equal томy, что тебе надо close(Handle); // в nixmail это так, может и нафиг не надо exec_какой_нaдо(); }

Chapter 12 Разное.

12.1 Где взять эмуляторы терминала cons25r для DOS/Win95/WinNT?

Существует несколько реализаций:




12.2 Нужна клиентская часть ssh для Win95.

Подойдет любой telnet-клиент плюс ssh для Win95 с переназначением портов (есть на ftp://ftp1.sut.ru/pub/utils/ssh32/{ssh*,crypt*}.zip) Нужно будет переназначить локальный порт, скажем, 23, на соответствующий порт нужной машины. После этого telnet localhost. Либо: 1) SecureCRT 2) teraterm


12.4 Посоветуйте сценарий празднования Нового Года.

# mv problems /dev/null # mv sadness /dev/null # ftp ] open name:pass@new.year.life ] hatch ] get money ##################################### OK. ] get some_beer ############## Hick! OK. ] quit # cron: syslogd disabled. # sc_connect [object] < pref.list # unzip [...] # strip [...] # mount /dev/censored # touch [...] # finger object # fsck # umount /dev/censored cron: syslogd enabled. # sleep # ftp name:pass@new.year.day ] get beer OK. ] quit # shutdown -r now.


12.5 Какие годы являются високосными, а какие - нет?

Високосным (то есть в котором 366 дней за счет 29 февраля) годом являются год, номер которого делится без остатка на 4, кроме тех, числа которых оканчиваются на два нуля, но не делятся на 400, поэтому, например, годы 1700, 1800, 1900 не являются високосными, а 2000 является.

Дело в том, что в астрономическом солнечном году всего 365.242198 астрономических солнечных суток. Отсюда и дополнительные невисокосные годы.


12.6 Где можно найти изображения даемонов BSD?

Официальным автоpом, дизайнеpом и хyдожником вообще всех изобpажений, символики и всего прочего для UNIX семейства BSD является Marshall Kirk Mckusick.

Символика для BSD-систем представлена на его веб-сервере http://www.mckusick.com/beastie. Там же можно заказать/кyпить фyтболкy с изобpажением даемона любимой веpсии ОС UNIX.


12.7 Где можно найти бесплатный доступ к shell?

Посмотрите на http://www.freeshells.net


12.8 Кто такой Луиджи?

Луиджи Риццо - итальянец, активно работающий с аудио во FreeBSD. Его домашняя страница, находящаяся по адресу http://www.iet.unipi.it/~luigi/, содержит массу полезной информации об аудио.


12.9 Почему во FreeBSD русификация стандартно сделана через scrnmap из koi8-r в cp866, а не непосредственно koi8-r?

На самом деле существует два способа русификации консоли FreeBSD. Первый способ заключается в установке шрифтов koi8-r и изменении параметра ядра SC_MOUSE_CHAR. Второй сводится к использованию шрифтов cp866 и scrnmap из koi8-r в cp866.

Стандартным для FreeBSD является использование второго способа. Дело в том, что некоторые видеоадаптеры аппаратно и неотключаемо расширяют символы (то есть копируют девятый бит изображения символа из его восьмого бита), соответствующие псевдографике в оригинальной таблице символов. При использовании шрифтов koi8-r псевдографика получается "рваной", а русские буквы сливаются. Кроме того, при использовании мыши на консоли в случае использования шрифтов koi8-r происходит порча символов на экране и необходимо переопределять SC_MOUSE_CHAR в конфигурационном файле ядра следующим образом:

options SC_MOUSE_CHAR=0x03

Для других адаптеров можно выбрать использование шрифтов koi8-r без использования scrnmap, однако способ с использованием scrnmap более универсален. В частности, для просмотра информации в других кодировках достаточно сменить scrnmap, например, cp1251-cp866.

Более подробную информацию о русификации консоли можно найти по адресу http://www.tsu.ru/~pascal/unix/syscons/russian.html


Chapter 13 Наши благодарности

Если вы обнаружили неточности в этом Q&A или хотите что-то в него добавить, пожалуйста, напишите нам на адрес andy@icc.surw.chel.su. Мы ждём ваши отзывы и пожелания, чтобы с вашей помощью сделать этот документ ещё лучше! The FreeBSD Russian Documentation Project

В данном документе использованы информация и замечания следующих лиц:



И всем остальным поклонникам FreeBSD, оставшимся неизвестными, наши глубочайшие извинения и сердечные благодарности!


Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.