The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Руководства по FreeBSD на русском" (Архив | Для печати)

Наброски по установке и настройке FreeBSD-4.x

Автор: Андрей Лаврентьев (lavr@unix1.jinr.ru), http://unix1.jinr.ru/~lavr/


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

- http://www.freebsd.org.ru/
- http://www.freebsd.org/
  или http://www.freebsd.org/mail/ - далее либо search, либо чтение mail

- http://www.freebsddiary.org/
- http://www.freebsdhelp.org/

- http://www.deja.com/bg.xp?level=comp.unix.bsd.freebsd

  или фидо группа

  http://www.deja.com/bg.xp?level=fido7.ru.unix.bsd

Набор моих личных настроек НИЖЕОПИСАННОГО, будет находится пока в:

протокол://unix1.jinr.ru/path/lavr_set.tgz [готовится... на базе unix1]

Быстрый обзор ЖЕЛЕЗЯК для FreeBSD 4.-STABLE
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Ram - память, как минимум 32, НО для работы >= 128MB [видимо 64MB не очень...]
CPU - 386/.../686 [Pentium/PentiumPro/Pentium-II/III]

ide/ata [+mfm/rll/esdi]
cdrom: scsi & atapi [смысла указывать _раритетные_-старинные cdrom нет]

scsi: указывать массу железяк нет смысла, поддерживается дофига.

raid: вот это интересно,

 - scsi-2-scsi: Mylex DAC960, Infotrend, CMD - понятно что external.

   ^^^^^^^^^^^- данная технология выгодна своей тс независимость, ну типа
   внешний и внешний, сами raid-массивы будут выглядеть для OS как один
   большой диск, хошь Бсдя, хошь Люниксъ

 -  pci-2-scsi: Mylex DAC960/1164 (AccelRAID 250 и Extreme 1000)
                                   ^^^^^^^^^^^^^- лажа ^^^^^^^^- пока
                очень путно работает, но еще нет нагрузки от users, посмотрим
                что будет после впукивания тудысь ~1000 users и как буит
                работать NFS'ня, хотя это и сете-железячно зависимая весчь
                имеется ввиду NFS, если лишь унутри свитча, то наверное
                без особых фичек. Люниксъ и NFS-3 судя по свистопляске "vvm"
                пока что жуткая жопа. Ох ужо это Люниксъ.

                DPT SmartCACHE Plus, SmartCACHE III, SmartRAID III, (старье)
                SmartCACHE IV и SmartRAID IV SCSI/RAID (более менее)

                AMI MegaRAID 1300/1400/1500 (более менее)

                3ware, Compaq, ICP-Vortex уже в разработке, а некоторые BETA!

    Довольно много уже появилось драйверов для различных RAID.

FreeBSD and current RAID support

Serial[COM] Ports: во FreeBSD довольно много поддерживается различных
многопортовок, для того чтобы задействовать в ядре номинальные COM1/COM2,
достаточно прописать:

device    sio0    at isa? port "IO_COM1" flags 0x10 tty irq 4 vector siointr
device    sio1    at isa? port "IO_COM2" tty irq 3 vector siointr
device    sio2    at isa? disable port "IO_COM3" tty irq 4 vector siointr
device    sio3    at isa? disable port "IO_COM4" tty irq 3 vector siointr

и при необходимости создать соответствующие устройства:
cd /dev; ./MAKEDEV cua0 cua1; ./MAKEDEV ttyd0 ttyd1

где /dev/cuaa0 - COM1
    /dev/cuaa1 - COM2

проверить работоспособность порта можно например, повесив мышь на COM1
и выполнив команду:

cat < /dev/cuaa0 ( повозим мышь и увидим результат )

или повесив модем на /dev/cuaa1 и выполнив:

cu -p /dev/cuaa1 -s 38400
...
~~. - выход.

сконфигурировать мышь через /stand/sysinstall или `man moused`

запустить от рута `moused -i all -p /dev/mouse` [соответствующий вашему порту]
после того как определили работоспособные параметры вашей мыши, пускаете
демон moused [-t ...] -p /dev/psm0[cuaa0]

для автоматического старта при последующих перезагрузок добавить строки на вкус
в /etc/rc.conf:

moused_port="/dev/cuaa0"   - ваш порт psm0 или cuaa0, или ...
moused_type="mouseman"     - если нужно указать протокол
moused_enable="YES"        - если пускать демон автоматом

после чего можно использовать мышку для cut/paste в Midnight Commander'е

sound: pci - ensoniq1370/71, neomagic, aureal-8820, trident 4Dwave.

ньюансы: масса creative pci 64/128 выполнены на чипах ensoniq.

Aureal Vortex - по мне так ш-и-к-а-р-н-а-я и дешевая карта, важно отслеживать
изменения в драйверах если вы катите систему через cvs/ctm:

http://www.cis.ohio-state.edu/~matey/au88x0/ - драйвера для:

Vortex Advantage(au8810)/ Vortex 1(au8820)/2(au8830)

Maestro 1/2 в ядре - см. /sys/dev/sound/pci
http://access.cent.saitama-u.ac.jp/~taku/freebsd/maestro/newpcm/readme.html

Maestro 3xxx       - http://people.freebsd.org/~scottl/maestro3/

SBLive поддержка в ядре или см.

http://www.defcon1.org/html/Hardware_Articles/PnP_Sound/PnP_Modem/SB-Live5/sb-live4.html

Для PCI звуковых карт достаточно включить в ядре строку:

device          pcm

- не забыв про поддержку устройств pci, затем пересобрать ядро, перегрузиться
и посмотреть распознало ли _новое_ядро_ вашу звуковую карту:

`dmesg | grep pcm` или `cat < /dev/sndstat`

- если все ok, запустить mixer и посмотреть параметры, или скомпилить mixer
на вкус их портов: aumix/xmix/xmixer/xmmix/...

- если получили в ответ "no such device" - просто создайте их:

cd /dev; ./MAKEDEV snd0 (0,1,... - в зависимости от количества карт)

Примечание: к счастью у меня неразрешимых проблем со звуковыми картами
не было: PNP16(ISA), AWE32/64, Ensoniq 1371, Aureal 8820.

Тем у кого ЕСТЬ проблемы с картами поддерживаемыми во FreeBSD сооветую
изучить уже указанные ссылки и те что ниже:

http://www.defcon1.org/html/Hardware_Articles/PnP_Sound/pnp_sound.html

http://www.defcon1.org/html/ssh/vpn-howto/pnp-soundcard.html

http://www.defcon1.org/html/Hardware_Articles/OpenSSH/Hardware/File-Systems/sb16-40.html

http://www.defcon1.org/%7Echrisw/FreeBSD/sb128pci.html

net/ware-less/atm... - пока не интересует.

Установка и настройка системы FreeBSD 4.-STABLE:

Установка:
----------

Для установки необходимо либо иметь ISO-IMAGE FreeBSD 4.0-RELEASE,
либо доступ к Internet чтобы установить систему любым из возможных
способов по сети: by FTP - предпочтительнее, если делается зеркало
FreeBSD, by NFS.           ^^^^^^^^^^^^^^^^- подразумевается что
при установке по NFS, будут недоступны линки на packages/xfree86,
поскольку они выходят за пределы "mount-point" by NFS.

 - выбрать тип установки MEDIA: CD-ROM/NET: FTP;NFS
 - выбрать вид установки:

   - я всегда выбираю "CUSTOM" - далее помечаю все необходимые компоненты,
   отказываясь в "crypto" от Kerberos
   - указываю включить "весь sources" для дальнейшей настройки-подготовки
   процедуры автоматического upgrade системы - cvsup
   - обязательно дерево портов [не считаю что /usr/ports - 8MB.tgz
   накладное бремя, наоборот
   - выбираю XFree86, включая sources, как минимум VGA+SVGA
   (server+fonts+fs)

все - запускаем установку.

После установки ЗАКАЗАННЫХ компонент, можно войти в режим PostInstall
и указать некоторый набор доп.сервисов, советую минимальный набор:

- Midnight Comander и/или deco
- less
- lynx или замену text-oriented www-browser [после установки сделать chmod
                                             или wrapper для запуска
                                             buffer-owerflow однако]
- shells: bash/tcsh [то что первоначально удобно мне]

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

 Достаточно указать набор стартуемых сервисов и задать пароль для пользователя
"root".

Все - установка завершена.

Перезагружаемся и приступаем к настройкам:

1. Советую сразу же пересобрать KERNEL - ядро, по себя, чтобы затем полностью
"отдаться" настройкам:

 - `cd /sys/i386/conf`
 - `cp GENRIC MYKERNEL`
 - `редактор MYKERNEL` | параллельно `less[редактор] LINT`
   +-----------------------------------------------------+
   изучаем LINT и вставлям куски из него в свое рабочее ядро, предлагаю делать
избыточные вставки с прицелом на будущее, дабы не ПЕРЕЧИТЫВАТЬ сто-раз LINT,
а уже оперировать со своим РАБОЧИМ ядром и комментариями в нем для себя,
естесственно, подразумевается что многое - взятое из LINT, останется не
задействованным до поры, до времени, НО уже с личными комментариями на будущее.

2. Итак, имеем готовое к сборке - собственное ядро: '/sys/i386/conf/MYKERNEL'

3. Но, прежде чем его сгенерить, советую сбросить файл '/etc/fstab' на дискету.
(и в дальнейшем иметь этот файл на носителе или другой машине, для страховки,
как впрочем и создание и/или использование дискетки 'fixit'

4. Запуск генерации нового ядра - KERNEL.

 - `cd /sys/i386/conf`
 - `/usr/sbin/config MYKERNEL`
 - `cd ../../compile/MYKERNEL`
 - `make depend`
 - `make`
 - `make install`

5. Не торопитесь перегружаться, сделайте копию того ядра, с которого у вас
успешно загрузилась система или прошла инсталляция, как минимум:

cp /kernel.GENERIC /kernel.old

пАчему? Да потому что предыдущее ядро будет переименовано в kernel.old, а
оно совсем не обязательно УДАЧНОЕ, например, если вы уже пересобирали ядро.

6. Перезагрузились.

- проблемы? не грузитесь - "кнопка reset"

теперь, когда пошел отсчет до загрузки... - нажмите, например "shift-?"
- першли в командный режим загрузчика "loader", набираем:

`unload kernel`
`load kernel.old` - или точнее грузим удачное ядро, так сказать откатываемся,

  загрузились - разбираемся, что не так...

- проблем нет, новое ядро работает так как хотели:

  - если в ядре был включен IPFIREWALL, то посмотрите как это было сделано,

  например: `ipfw l` - получите текущий набор правил.
  если все порты запрещены, то в зависимости от того как планируется
  использовать данную систему, опять же в '/etc/rc.conf' - задаете
  соответствующие параметры для ipfw, первоначально советую:

firewall_enable="YES"           # Set to YES to enable firewall functionality
firewall_script="/etc/rc.firewall" # Which script to run to set up the firewall
firewall_type="open"            # Firewall type (see /etc/rc.firewall)
firewall_quiet="NO"             # Set to YES to suppress rule display
firewall_flags=""               #

  бегло просмотрите файл /etc/rc.firewall - для того чтобы открыть порты
в темпе вальса, для дальнейшего ускорения настройки системы, выполните
необходимые команды `ipfw ...` или после внесения изменений в /etc/rc.conf
- sh /etc/rc.firewall, затем снова команду `ipfw l`, должны быть открыты порты:

[mp3]~ > ipfw l
00100 allow ip from any to any via lo0
00200 deny ip from any to 127.0.0.0/8
65000 allow ip from any to any
65535 deny ip from any to any
[mp3]~ > 

Комментарий: начиная с 4.2 в rc.firewall добавлены первоначальные настройки
и для IPFILTER.

Необходимо осознавать что теперь в ЯДРО FreeBSD включены две "Стенки" :)

 - IPFIREWALL
 - IPFILTER

можете использовать ХОТЬ ОБЕ. Строки для IPFILTER в ЯДРЕ:

#options         IPFILTER                #ipfilter support
#options         IPFILTER_LOG            #ipfilter logging

остальное по вкусу и потребностям, зависит от того ЧТО ХОТИТЕ и БУДЕТЕ
использовать.

  - теперь советую докрутить и настроить-запустить, если это не было сделано
  SSH.

  для этого достаточно вставить в /etc/rc.conf строку:

  sshd_enable="YES"

  и после это запустить sshd руками или через /etc/rc.network. 

  Отметим, что OpenSSH, начиная с 4.0 является частью системы и в нем
отсутствует алгоритм криптования IDEA, по причинам лицензии. Сразу отмечу
с чем столкнулся я и что сразу изменил под себя, по умолчанию запрещено
RSA, форвардирование X11, шаги:

- вставить строку 'RSAREF=YES' в /etc/make.conf
- `cd `whereis rsaref | awk '{ print $2}'``
- make
- make install
- правим конфигурацию '/etc/ssh/sshd_config' под себя

 Теперь можем использовать RSA-аутентикацию.

Примечание: в отношении RSA и IDEA, верхнее устарело, RSA включено в OpenSSL,
а для использования IDEA необходимо добавить в /etc/make.conf

MAKE_IDEA=     YES     # IDEA (128 bit symmetric encryption)

и пересобрать /usr/src/secure или систему, на ваш выбор.

Осталось внести соответствующие изменения в конфигурацию /etc/ssh/sshd_config,
выдать сигнал SIGHUP демону sshd и теперь можно удаленно настраивать сервисы
в НОВОЙ системе из-под пользователя 'toor', которому я обычно определяю в
качестве 'shell==bash'.

Примечание: некоторые опции коммандной строки в OpenSSH отличаются от тех
что в SSH-1.2.x, например:

было SSH:

ssh -f -q -o BatchMode=yes unix1.jinr.ru xterm -sb -title "Unix1" -fn 8x13 -geometry 80x40

стало:

ssh -f -q -o "BatchMode yes" unix1.jinr.ru xterm -sb -title "Unix1" -fn 8x13 -geometry 80x40

ну и масса незначительных мелочей...

пример sshd_config:

------------------------------- /etc/ssh/sshd_config -------------------------
# This is ssh server systemwide configuration file.
#
# $FreeBSD: src/crypto/openssh/sshd_config,v 1.4.4.1 2000/06/09 07:32:32 kris Ex
p $

# по каким портам отвечать SSHD демону
Port 22
Port 2022
Protocol 2,1
ListenAddress 0.0.0.0
#ListenAddress ::
HostKey /etc/ssh/ssh_host_key
HostDsaKey /etc/ssh/ssh_host_dsa_key
ServerKeyBits 768
LoginGraceTime 60
KeyRegenerationInterval 3600
#--lavr default RootLogin=no
PermitRootLogin yes
# Rate-limit sshd connections to 5 connections per 10 seconds
ConnectionsPerPeriod 5/10
# Don't read ~/.rhosts and ~/.shosts files
#--lavr ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- default "yes", for rsh-compat "no"
#IgnoreRhosts yes
IgnoreRhosts yes
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes
StrictModes yes
#--lavr default NO x11forward
#X11Forwarding no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd yes
KeepAlive yes

# Logging
SyslogFacility AUTH
LogLevel INFO
#obsoletes QuietMode and FascistLogging

#RhostsAuthentication no
#^^^^^^^^^^^^^^^^^^^^^^^- for rsh-compat "yes"
#RhostsAuthentication no
RhostsAuthentication no

#
# For this to work you will also need host keys in /etc/ssh_known_hosts
#--lavr: I have /etc/ssh_known_hosts
RhostsRSAAuthentication yes
#
RSAAuthentication yes

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
PermitEmptyPasswords no
# Uncomment to disable s/key passwords 
#SkeyAuthentication no

# To change Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#AFSTokenPassing no
#KerberosTicketCleanup no

# Kerberos TGT Passing does only work with the AFS kaserver
#KerberosTgtPassing yes

CheckMail no
#CheckMail yes
UseLogin no
------------------------------------------------------------------------------

Пользовательский $HOME/.ssh/config

------------------------------ $HOME/.ssh/config -----------------------------
# This is ssh client systemwide configuration file.  This file provides 
# defaults for users, and the values can be changed in per-user configuration
# files or on the command line.
#
# $FreeBSD: src/crypto/openssh/ssh_config,v 1.2 2000/02/24 15:29:41 markm Exp $

# Configuration data is parsed as follows:
#  1. command line options
#  2. user-specific file
#  3. system-wide file
# Any configuration value is only changed the first time it is set.
# Thus, host-specific definitions should be at the beginning of the
# configuration file, and defaults at the end.

# Site-wide defaults for various options

Host alone.dubna.ru
#   BatchMode yes
   CheckHostIP yes
   PasswordAuthentication yes
# на каком порту висит SSHD
   Port XXXX

Host spleen.demos.su
#   BatchMode yes
   CheckHostIP yes
   PasswordAuthentication yes
# на каком порту висит SSHD
   Port XXXX

Host *
   ForwardAgent yes
   ForwardX11 yes
   RhostsAuthentication yes
   RhostsRSAAuthentication yes
   RSAAuthentication yes
   PasswordAuthentication yes
   FallBackToRsh no
   UseRsh no
#   BatchMode yes
   CheckHostIP yes
   StrictHostKeyChecking no
   IdentityFile ~/.ssh/identity
   Port 22
   Cipher blowfish
   EscapeChar ~
------------------------------------------------------------------------------ 

лично мне удобно на всех своих серверах создать в $HOME/.ssh

-rw-------   1 lavr  dug    681 24 июл 13:03 authorized_keys

в который внести строку с публичным ключом из моего identity.pub на моей
рабочей машине, чтобы затем запустив X11 через SSH заходить на удаленные
сервера/машины через RSA-авторизацию, очень удобно, впрочем как и пускать
удаленные x-apps без установки удаленной переменной DISPLAY.

 Последнее: проверка наличия всех имеющихся и недостающих устройств в
'/dev':

`cd /dev` | на другом виртуальном-экране `less /sys/i386/conf/MYKERNEL` |
 на третьем вирт-экране `man интересующее_устройство` |
 на четвертом `less MAKEDEV` - чтобы не ошибиться что искать в '/dev' и
 как создаются _недостающие_устройства_ и их related в MAKEDEV!!!

Что иногда следует избыточно создать в '/dev':

cd /dev
MAKEDEV - ad0 ad1 ad2 ad3 ... - default=0,...,3 остальное+slices руками
MAKEDEV ptyN - псевдо-терминалы, default==32
MAKEDEV vtyN - виртуальные терминалы через syscons, defaul==12
MAKEDEV iic  - создание устройств для I2C 
MAKEDEV smb  - создание устройств для SMBus шины
MAKEDEV snd  - создание устройст для SoundBlaster

Примечание: для того чтобы выполнить `cd /dev/; ./MAKEDEV all` - много
ума не надо, НУЖНО лишь хорошо подумать КОГДА и ЗАЧЕМ нужно сделать
изменения или добавления необходимых устройств, например физическое подключение
нового устройства в систему, ядро и его пересборка - могут потребовать
отработки MAKEDEV, или изменения драйверов - добавление и пересборка ядра c
дальнейшим их созданием.

7. Теперь быстро настраиваем ENVIRONMENT для sh/csh[tcsh/bash - ВСЕ,
после выполнения этого пункта - приступаем к настройке X11R6.

Настройка СРЕДЫ и локализация.
------------------------------
1. При установке 4-Release/Stable необходимо:

- выбрать в качестве клавиатурного мапирования: 'keymap="ru.koi8-r"'
- выбрать фонты, тут два варианта: koi8r или cp866, следует заметить
  что фонты "cp866" гораздо удачнее, по крайней мере, для моего зрения:

1) если выбираем фонты KOI8-R - отпадает необходимость screen-maping, те
  более ничего задавать для Руссификации НЕ НАДО.

2) если выбираем фонты CP866, то необходимо задать screen-mapping:
  scrnmap="koi8-r2cp866"
   В этом варианте, при работе в текстовом режиме на Console, мы можем
  переключаться используя "Caps Lock" в кодировку KOI8-R и удерживая
  "Left Alt" набирать текст в кодировке CP866[Russian Alternative/MSDOS]

 Если же мы не выбрали клавиатурный мапинг и фонты при установке системы
- Install, то ничто не мешает нам сделать эти настройки после:

Для этого вносим поправки или изменения в файл /etc/rc.conf - для ознакомления
со остальными всевозможными параметрами настройки, см. /etc/defaults/rc.conf

-------------------------- врезка в /etc/rc.conf -------------------------- 
keymap="ru.koi8-r"
keychange="61 ^[[K"
scrnmap="koi8-r2cp866"
font8x16="cp866b-8x16"
font8x14="cp866-8x14"
font8x8="cp866-8x8"
---------------------------- окончание врезки -----------------------------

 - однако этого будет недостаточно для моментальной работы с русской раскладкой

для того чтобы консоль с виртуальными-терминалами имели нормальный вид,
необходимо внести соответствующие изменения в файл '/etc/ttys':

---------------------------- врезка в /etc/ttys ---------------------------
# when going to single-user mode.
console none                            unknown off secure
#
ttyv0   "/usr/libexec/getty Pc"         cons25r on  secure
                                        ^^^^^^^- что соответствует
определению терминала из /etc/termcap - KOI8-R FreeBSD console support

# Virtual terminals
ttyv1   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv2   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv3   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv4   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv5   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv6   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv7   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv8   "/usr/X11R6/bin/xdm -nodaemon"  xterm   off secure
---------------------------- окончание врезки -----------------------------

После внесения изменений в '/etc/ttys' - необходимо послать сигнал SUGHUP
номеру процесса соответствующему демону 'init', например:

kill -HUP `ps -ax | grep init | grep -v grep | awk '{ print $1 }'`

или

init q

Все - теперь в самой СИСТЕМЕ, все готово для работы с KOI8-R, НО осталось
настроить "окружающую среду" - ENVIRONMENT, приведу примеры для наиболее
популлярных в нашем "местечке" SHELL'ов: bash/tcsh:

Bash:
-----
создать в домашнем каталоге файл '.inputrc':
-------------------------- $HOME/.inputrc ---------------------------------
set convert-meta off
set input-meta on
set output-meta on
----------------------------- end of cut ----------------------------------

------------------------ $HOME/.bashrc[.bash_profile ----------------------
export CHARSET=KOI8-R
export MM_CHARSET=KOI8-R
export LANG=ru_RU.KOI8-R
---------------------------------------------------------------------------

Tcsh[Csh]
------------------------------ $HOME/.login -------------------------------
setenv CHARSET KOI8-R
setenv MM_CHARSET KOI8-R
setenv LANG ru_RU.KOI8-R
---------------------------------------------------------------------------

 Все - теперь можем реально пользоваться трудами А.Чернова - ache, за что
ему огромная благодарность от сообщества.

Примечание: Следуя рекомендации FreeBSD-HandBook, в ядро системы KERNEL,
советуют определить-добавить строку:
------------------------------ врезка в KERNEL ----------------------------
    options        SC_MOUSE_CHAR=0x03
---------------------------------------------------------------------------

и пересобрать ядро.

2. Для облегчения жизни в системном администрировании, удобно использовать
некоторые настройки среды в системном файле '/etc/login.conf' - определив
и настроив соответствующий login-class, например 'russian':

russian:Russian Users Accounts:\
        :charset=KOI8-R:\
        :lang=ru_RU.KOI8-R:\
        :tc=default:

Примечание: вышеуказанный пример, уже имеется в /etc/login.conf, НО
класс 'default' - практически не имеет ограничений, посмотри примеры
в том же файле и создайте несколько _планируемых_ классов пользователей
по задачам-ресурсам-секьюрити и тд и тп.

3. По завершении настройки среды, создайте конфигурацию для зхаведения
новых пользователей и программу для генерации _случайных_ паролей:

- для этого, прежде всего, просмотрите файл /etc/shells - в нем должны
быть перечислены ВСЕ разрешенные командные-интерпретаторы - shell, для
пользователей

- просмотрите и при необходимости внесите изменения в файл /etc/group,
те создайте нужные вам группы отредактировав этот файл и внеся продуманные
вами группы.

- можете создать файл /etc/adduser.message - для отсылки необходимого
сообщения НОВОМУ - заводимому пользователю.

- можете создать один или несколько фалов /etc/adduser.conf - для дальнейшего
написания своего автомата или front-end, для заведения пользователей различного
назначения, например:

  /etc/adduser.conf - для интерактивных пользователей, а
  /usr/local/etc/adduser.conf - для PPP and etc...

болванку /etc/adduser.conf можно создать либо вручную, либо интерактивно:

`adduser -config_create` - по этой команде, получите болванки-заготовки, файлов

 /etc/adduser.message ,/etc/adduser.conf - здесь будет определен лог-файл
 регистрации новых пользователей, директория с болванками-заготовками:
 dot.shells - где находятся файлы с настройками СРЕДЫ пользователя и прочая
 административная политика.

- лично я использую в болванках /path/skel - dot.shells/logon вызовы собственно-
 ручно настроенных файлов[например .profile/.bashrc/.chsrc/.login/.logout
 в заведомо-стандартно размещенных местах: /etc или /usr/local/etc - последнее
 в случае использования nis/nis+ [diskless and etc]
  Сделано это специально с УЧЕТОМ собственных изменений параметров - как
 минимум ПУТЕЙ - откуда и в какой ПОСЛЕДОВАТЕЛЬНОСТИ 'login' будет отрабатывать
 login-shells!!!

(Не забудьте пересобрать НУЖНЫЕ вам SHELLs с ВАШИМИ правками)

4. Среда готова, МОЖНО быстро настроить CVSUP для копирования НЕОБХОДИМОГО
минимума исходников - это недолго:

 - для запуска и настройки cvsup, необходимо ЛИБО собрать cvsupit из
   портов (это может оказаться долгим занятием, поскольку cvsupit - всего
   лишь менюшный front-end к cvsup-bin - который и надо собственно собрать!),
   ЛИБО установить cvsupit из packages, он потянет за собой cvs-bin и запустит
   меню настройки CVSUP-IT.

 - в настройках CVSup-it укажите все что вам необходимо, НО лучше не запускайте
   а отложите на потом, наверняка ВЫ что-либо измените...

В двух словах об cvsup:

эта утилита - синхронизации дерева текущей системы, или той части дерева,
которую вы укажите.
 По умолчанию будут созданы два настречных файла для sources системы и
отдельно для crypto, естественно после установки и настройки cvsupit:

[mp3]~ > ls -la /etc/cvs*
-rw-r--r--  1 root  wheel  340 13 июн 21:58 /etc/cvsupfile
-rw-r--r--  1 root  wheel  184 13 июн 21:58 /etc/cvsupfile.intl
[mp3]~ > 

И предложено выполнить соответствующие изменения в /etc/periodic/daily
для запуска апгрейда через cron.

Важные моменты cvsup:

- директива 'host=задает fqdn-имя машины откуда будем брать sources'
  для RUSSIAN удобно:

  host=cvsup.ru.FreeBSD.org
  host=cvsup2.ru.FreeBSD.org
  host=cvsup3.ru.FreeBSD.org

- директива 'base=base' - задает базовую директорию для записи статистики
  отработки собственно cvsup, default=/usr/local/etc/cvsup - сама директория
  создается вручную, cvsup НЕ СОЗДАЕТ ее автоматически. Мне удобно:

  base=/var/log/cvsup или base=/var/cvsup

- директория 'prefix=prefix' - задается базовая директория для размещения
  собственно выкачиваемых sources, если сразу натягивать на свою системуб то

  prefix=/usr

Минимальный пускач cvsup: `/usr/local/bin/cvsup -g -L 2 /etc/cvsupfile`
Опять же, решайте сами где держать файл 'cvsupfile', что выбрать в
качестве базовой директории 'base', где будет создаваться lock-file запуска
`cvsup` и куда будут записываться логи - `base=base/sup`

 Не забывайте что после запуска cvsup проверяет наличие lock'а и при его
наличии МОЛЧА завершает работу.
 Я бы изобразил для собственного удобства, нечто следующее:

--------------------------- /etc/cvsupfile --------------------------
*default host=cvsup.ru.FreeBSD.org

#--lavr it's comfortable for COMMON log-file or
#*default base=/var/log/cvsup - but don't forget about subdir `sup` inside

*default base=/var/log
*default prefix=/usr

#--lavr line for RELENG_4
*default release=cvs tag=RELENG_4
*default delete use-rel-suffix

# If your network link is a T1 or faster, comment out the following line.
*default compress

## Main Source Tree.
#
# The easiest way to get the main source tree is to use the "src-all"
# mega-collection.  It includes all of the individual "src-*" collections,
# except the export-restricted collections.

src-all

## Export-restricted collections.
#
# Only people in the USA and Canada may fetch these collections.  If
# you are not in the USA or Canada, please use the collections in the
# "secure-stable-supfile" instead.
#
# The easiest way to get the export-restricted code is to use the
# "cvs-crypto" mega-collection.

cvs-crypto
---------------------------- end of cvsupfile -------------------------

 А запуск cvsup, как:

/usr/local/bin/cvsup -g -L 1 -z -l /var/spool/lock/cvsup /etc/cvsupfile 

-g   - не использовать графмческую оболочку при запуске
-L n - уровень статистической информации,

   где n=0;1;2 , 0 - нуль :)
                 1 - default
                 2 - много дряни

-z   - разрешить compression
-l /path/filename - место расположения lock-файла

/path/filename - собственно конфигурационный cvsupfile.

Кроме размещения верхней строки в /etc/periodic/daily - я бы навернул
на это хозяйство небольшой скрипт для СОБСТВЕННОГО удобства.

Примечание: просто маленькое отступление по /etc/periodic/...

[mp3]~ > ls -la /etc/periodic/
total 6
drwxr-xr-x   5 root  wheel   512  5 июн 22:33 .
drwxr-xr-x  15 root  wheel  2048 15 июн 20:18 ..
drwxr-xr-x   2 root  wheel  1024  5 июн 22:33 daily
drwxr-xr-x   2 root  wheel   512  5 июн 22:33 monthly
drwxr-xr-x   2 root  wheel   512  5 июн 22:33 weekly
[mp3]~ > 

Утилита /usr/sbin/periodic - используется для запуска через cron - содержимого
верхних директорий.

Важное: daily/monthly/weekly - директории должны содержать исполняемые файлы,
в ином случае 'periodic' не запустит _нужную_ процедуру из указанных директорий
- и это удобно, чтобы держать свою свалку, что нужно execute-bit, что не нужно
non-execute-bit.

 Midnight Commander - взятый из package, угребище - собран с ncurses,
раз уж разговор идет о BSD - termcap + slang, или slang-with_own_terminfo
- rulezz.

итак:

[mp3]~ > cd /usr/ports/misc/mc/
[mp3]/usr/ports/misc/mc > export WITH_SLANG=yes
[mp3]/usr/ports/misc/mc > make
[mp3]/usr/ports/misc/mc > make install

Имеем: установленную библиотеку Slang+terminfo, mc+slang+subshell - все для
собственного удобства.

Комментарий: хоть новый Midnight Commander и дрянь, но вполне рабочий,
для трудоспособности необходимо лишь собрать без gettext изменив
в /usr/ports/misc/mc/Makefile строку относящуюся к поддержке со SLANG:

.if defined(WITH_SLANG)
CONFIGURE_ARGS= --with-slang --without-gnome --with-edit --with-ncurses --without-gettext

после чего нормальная работа CTRL-O (в xterm) и mcedit обеспечена.

Примечание: новый MIDC - просто жутчайшее гОвно, нужно попробовать:

- ftp://esp-team.scene.hu/esp-team/linux/ - на базе 4.1.35-10 с кучей
  различных внесенных поправок

- ftp://ftp.cocos.ru/pub/unix/Midnight.Commander             - 4.1.27 midc потрогать

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~- верхние
две реализации актуальны для старых версий FreeBSD, начиная с 4.x необходимы
дополнительные правки(что видимо себе дороже, горбатого - могила исправит).
 Остается лишь вариант использования MIDC из портов, не забывайте что
название установленного binary файла - midc (/usr/local/bin/midc), чтобы
не мучаться, можно поправить Makefile, добавив туда создание линка после
установки и удаление его при deinstall - скрипт pkg-deinstall:

----------------------------- Makefile -----------------------------------
...
...

post-install:
        @${LN} -s ${PREFIX}/bin/midc ${PREFIX}/bin/mc

.include 
--------------------------- end of Makefile ------------------------------

---------------------------- pkg-deinstall -------------------------------
#!/bin/sh
/bin/rm -f /usr/local/bin/mc
--------------------------- end of deinstall -----------------------------

или использовать alias в среде для mc, примеры которых, кстати, находятся
в /usr/local/share/mc
 
- ftp://skuns.redcenter.ru/pub/mc - правленый под Solaris, посмотреть

5. Настраиваем X11R6.

У вас есть возможность выбрать один из трех вариантов:

- XF86Setup , графическая конфигурационная утилита для XFree86
  (требует наличия установленного VGA Server'а при установке)

- xf86config , конфигурационная утилита для XFree86 в текстовом режиме

- /stand/sysinstall - включает ВСЕ вышеперечисленное в одной упаковке на выбор
  с добавлением конфигурации Desktop (предварительно должен быть установлен/ы
  интересующие вас window-managers - не забудьте)

- если был произведен upgrade или установка на тоже железо которое
  использовалось и в предыдущих версия, можно использовать реконфигуратор

  reconfig < Xconfig > XF86Config

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

 xvidtune

Кроме того не забудьте установить из портов russian для X11R6 необходимые
пакеты и фонты, перезапустите XServer и проверьте на предмет Russian.

 Теперь чуть подробнее об XF86Setup
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- запускаем XF86Setup с командной строки или из /stand/sysinstall

Имеем:

------------------------------------------------------------
 Mouse | Keyboard | Card  | Monitor | Modeselection | Other
------------------------------------------------------------

Начинаем настраивать по-порядку:

Mouse: Нам предлагаются поддерживаемые протоколы: 'Microsoft', 'MouseMan'
и тд и тп, выбирайте тот в соответствии с которым работает ваша мышь.

Ньюансы: 

- используйте '/dev/sysmouse' - в случае если у вас загружен демон
для поддержки работы мыши в текстовом режиме.

- протокол 'Logitech' работает со старыми моделями мышек Logitech
новые модели обычно поддерживают протоколы 'Microsoft' и/или 'MouseMan'

- если после запуска XF86Setup и перехода в режим VGA, ваша мышь не работает,
используйте в качестве альтернативной работы с меню и настройки мыши -
спец.клавиши:

  Клавиши            Выполняемая Функция
-------------------------------------------
  a       -          применить указанные изменения

  b       -          выбрать следующую скорость работы мыши baud-rate
                     (при проблемах во время настроек, baud-rate "1200"
                      должна работать железно)

  c       -          назначить режим эмуляции ChordMiddle

  d       -          выбрать  режим сброса - ClearDTR

  e       -          назначить режим емуляции 3-х кнопочной мыши

  l       -          выбрать следующее разрешение [high/mediaum/low]

  n       -          выбрать имя устройства [/dev/mouse]

  p       -          выбрать поддерживаемый вашей мышью протокол
                     [если ваша мышь не работает, то данная опция в сочетании
                     с выбором-установкой скорости в 1200, должны ее оживить]

  r       -          выбрать режим сброса - ClearRTS

  s       -          уменьшить скорость

  t       -          уменьшить время timeout для режима эмуляции 3'х кнопочной
                     мыши

  3[4[5]] -          соответственно в 3[4[5]]

  Tab/Shift-Tab - позволяют перемещаться по элементам меню.

Keyboard: Достаточно выбрать модель клавиатуры - соответствующую вашей
         и Layout, можете оставить English, остальные изменения сделаете
уже в конфигурационном файле.

Card: если у вас AGP карта, то скорее всего достаточно будет выбрать SVGA, в
ином случае ищите вашу модель или GENRIC.

После выбора модели из списка, можете войти в 'Detail setup' и указать
размер памяти, Chipset/Ramdac/ClockChip - если исследовали свою карту и
определили ВСЕ составляющие компоненты, ЛИБО оставьте все на апробацию:
'Probe'

Monitor: смотрите характиристики монитора и указываете частоты развертки,
например - Horizontal: 30-96        Vertical: 50-160
(не забудьте, это всего лишь пример, указывайте свои)

Modeselection: выбираете те в которых вы будете работать, например:

640x480 + 800x600 ...

режим по умолчанию, один из тех который вас устраивает и поддерживает XFree86
для вашей карты, см. README: 8bpp/16bpp/24bpp или 32bpp [один из них]

Other: тут обычно default вполне устраивает.

ВСЕ - Done, далее запуск сервера и xvidtune для корректировки режимов.

Запускаем `xvidtune`:

С настройками режимов все просто: переходим в "AUTO", теперь используя
режимы: "Left"/"Right" - влево-вправо, "Width"/"Narrow" - шире-уже и
         "Up"/"Down"   - вверх-вниз, и вытянуть-сжать - начинаем выправлять
рабочее окно, не забудьте "Save" - сохранить нужные настройки в каждом режиме.

"quit" - выходим и наши новые параметры сохранены в '/etc/XF86Config'
/etc/XF86Config - это конфигурация XFree86 для нашей машины, теперь нам лишь
осталось подправить ее на предмет "Cyrillic", но сперва советую установить

Примечание:

- XFree86 3.3.x, xvidtune сохраняет параметры разверток Modes в файле
  конфигурации
- XFree86 4.x.x, xvidtune НЕ сохраняет параметры разверток, вы можете их
  записать и добавить самостоятельно в файл конфигурации

Многих смущает размер рабочей области Desktop'а в режимах 640x480, 800x600 и
тд и тп, используйете Virtual опцию в xf86config или других конфигураторах
для нужных вам режимов, не забудьте что для некоторых карт этот режим не
поддерживается: `man XF86Config` and see Virtual, ViewPort.

 Если при установке XFree86 вы выбираете сервер для конкретной карты, те
отличный от Generic, то вы автоматически используете некоторый известный набор
видео-режимов, изменить который можно вручную в файле конфигурации,
предварительно определив нужные параметры с помощью xvidtune или других утилит.

Кроме этого вы можете изменять порядок следования видеорежимов, например,
XFree86 3.3.x:

----------------------------- XF86Config -----------------------------------
...
Section "Monitor"
  Identifier      "Primary Monitor"
  VendorName      "Samsung"
  ModelName       "SyncMaster 700ift"
  HorizSync       30-96
  VertRefresh     50-160
#--lavr, below my modes for Samsun-700IFT and 3400/TNT/AGP/16MB
  Modeline  "1280x1024" 157.50 1280 1372 1532 1692 1024 1025 1028 1072 +hsync +vsync
  Modeline  "1152x864"  137.65 1152 1248 1376 1540 864 866 885 902 -hsync -vsync
  Modeline  "1024x768"  115.50 1024 1116 1308 1364 768 771 781 802 -hsync -vsync
  Modeline  "800x600"    69.65 800 868 932 1060 600 604 610 640 -hsync -vsync
EndSection
...
Section "Screen"
   Driver          "Accel"
   Device          "Primary Card"
   Monitor         "Primary Monitor"
#--lavr, use bpp32 as default when startx
   DefaultColorDepth 32
   SubSection "Display"
      Depth        8
      Modes        "1280x1024" "1152x864" "1024x768" "800x600"
   EndSubSection
   SubSection "Display"
      Depth        15
      Modes        "1280x1024" "1152x864" "1024x768" "800x600"
   EndSubSection
   SubSection "Display"
      Depth        16
      Modes        "1280x1024" "1152x864" "1024x768" "800x600"
   EndSubSection
   SubSection "Display"
      Depth        24
      Modes        "1280x1024" "1152x864" "1024x768" "800x600"
   EndSubSection
   SubSection "Display"
      Depth        32
      Modes        "1280x1024" "1152x864" "1024x768" "800x600"
   EndSubSection
EndSection
--------------------------- end of XF86Config ------------------------------

XFree86 4.x.x:

----------------------------- XF86Config -----------------------------------
...
Section "Device"
    Identifier  "Riva TNT2/Ultra Vanta"
    Driver      "nv"
    VideoRam    16384
    Option "ShadowFB" "on"
    #VideoRam    8092
    # Insert Clocks lines here if appropriate
EndSection
...
Section "Screen"
    Identifier  "Screen 1"
    Device      "Riva TNT2/Ultra Vanta"
    Monitor     "CTX"
    DefaultDepth 16

    Subsection "Display"
        Depth       8
#        Modes       "640x480" "800x600" "1024x768" "1280x1024"
        Modes       "1280x1024" "1152x864" "1024x768" "800x600" "640x480"
        ViewPort    0 0
    EndSubsection
    Subsection "Display"
        Depth       16
#        Modes       "640x480" "800x600" "1024x768" "1280x1024"
        Modes       "1280x1024" "1152x864" "1024x768" "800x600" "640x480"
        ViewPort    0 0
    EndSubsection
    Subsection "Display"
        Depth       24
#        Modes       "640x480" "800x600" "1024x768" "1280x1024"
        Modes       "1280x1024" "1152x864" "1024x768" "800x600" "640x480"
        ViewPort    0 0
    EndSubsection
EndSection
...
--------------------------- end of XF86Config ------------------------------

При конфигурации X11, были выбраны режимы:

 -  8bpp
 - 15bpp (XFree86 3.3.x)
 - 16bpp
 - 24bpp
 - 32bpp (XFree86 3.3.x)

В первом установлено использовать при запуске глубину цвета bpp32, во-втором
- bpp16.
 
По-умолчанию (запуск startx без параметров) - XServer будет запускатьс с
глубиной цвета определенной параметром DefaultColorDepth, а порядок
следования разрешений в параметрах Modes, для каждой глубины цвета:

Modes        "1280x1024" "1152x864" "1024x768" "800x600"

может быть переопределен:

Modes        "1152x864" "800x600" "1024x768" "1280x1024"

переключать разрешения в загруженных X11 можно комбинацией клавиш: 

Ctrl-Alt-"+"["-"] (и гулять в разрешениях по кольцу):

Ctrl-Alt-"+" - перешли в другой режим, Ctrl-Alt-"-" - вернулись из него в
предыдущий и тд.

Запускать X11 с разной глубиной цвета, можно:

- XFree86 3.3.x: startx -bpp 16 или startx -bpp 24
- XFree86 4.x.x: startx -depth 16 или startx -depth 24

Документацию по поддерживаемым видео картам, чипсетам и остальные тонкости,
можно найти в директории /usr/X11R6/lib/X11/doc, если вы установили X11 вместе
с документацией.

Оконные менеджеры, я попробовал все из:

- kde
- afterstep
- gnome+enlightenment
- WindowMaker
- fvwm/fvwm95

Первоначально, советую установить их из "packages" и после разборок полетов
с каждым из них или после первого запуска, остановиться на одном-двух, которые
прикрутить под себя - желательно собрать из портов со своими личными
предпочтениями.

 Прежде чем изучать window-managers их естесственно нужно оценить - посмотреть,
это делается просто, X-Window запускается всего лишь двумя способами:

- через xinit, для этого необходимо с командной строки выполнить:

[mp3]~ > startx

- через xdm [если вы занимаетесь первичными настройками, отложите запуск X11
этим методом до окончательной настройки Window-Managers]

 Итак, команда startx - это обычный пускач, скрипт и вы можете его посмотреть
- изучить, поправить под собственные нужды, если вы были внимательны, то
заметели, что там идет вызов 'xinit' с аргументами - в качестве которых
выступает либо пользовательский файл '.xinitrc' из домашней директории, либо
системный.
 Итак, для того чтобы в темпе вальса - "на первый взгляд" оценить все
установленные оконные менеджеры, достаточно создать в домашней директории
файл '.xinitrc', напримет:

----------------------------- .xinitrc -------------------------------
#--my comments
#
#--lavr add's one xterm, because some problems may exist with WM

xterm &

exec fvwm
#exec afterstep
#exec wmaker
#exec gnome-wm
#exec kde
-----------------------------------------------------------------------

Теперь мы раскомментариваем нужный менеджер и выполняем `startx` - наслаждаемся
Заметим что для запуска wmaker'а нужно предварительно запустить процедуру
инициализации - `wmaker.inst`.

 По-скольку я привык к набору fvwm1.24/fvwm2/fvwm95 - я их установлю и
настрою под свои нужды из портов, а вот из остальных, по принципу "первого
взгляда" - мне сходу понравились: wmaker/afterstep/kde.

 Изменения в /etc/XF86Config - для локализации системы на предмет поддержки
KOI8-R, должно соответствовать:

Section "Files"
   RgbPath    "/usr/X11R6/lib/X11/rgb"
   FontPath   "/usr/X11R6/lib/X11/fonts/cyrillic/misc"
   FontPath   "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi"
   FontPath   "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi"
   FontPath   "/usr/X11R6/lib/X11/fonts/local"
   FontPath   "/usr/X11R6/lib/X11/fonts/misc:unscaled"
   FontPath   "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
   FontPath   "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
   FontPath   "/usr/X11R6/lib/X11/fonts/Type1"
   FontPath   "/usr/X11R6/lib/X11/fonts/Speedo"
   FontPath   "/usr/X11R6/lib/X11/fonts/misc"
   FontPath   "/usr/X11R6/lib/X11/fonts/75dpi"
   FontPath   "/usr/X11R6/lib/X11/fonts/100dpi"
EndSection

Порядок расположения 75dpi и 100dpi можете изменить если используете
высокое разрешение. Сами фонты, вам необходимо установить из портов или
пакетов, либо вы должны были выбрать их при инсталляции:

[mp3]~ > ls -la /usr/ports/russian/
total 21
drwxr-xr-x  17 root  wheel   512  5 июн 22:44 .
drwxr-xr-x  51 root  wheel  1024  5 июн 22:45 ..
-rw-r--r--   1 root  wheel   438 29 янв 08:41 Makefile
-rw-r--r--   1 root  wheel   100 11 апр 10:59 Makefile.inc
-rw-r--r--   1 root  wheel  1828 28 май 12:29 README.html
drwxr-xr-x   4 root  wheel   512  5 июн 22:44 X.language
drwxr-xr-x   5 root  wheel   512  5 июн 22:44 apache13
drwxr-xr-x   5 root  wheel   512  5 июн 22:44 cyrproxy
drwxr-xr-x   4 root  wheel   512  5 июн 22:44 d1489
drwxr-xr-x   3 root  wheel   512  5 июн 22:44 elm.language
drwxr-xr-x   5 root  wheel   512  5 июн 22:44 gd
drwxr-xr-x   4 root  wheel   512  5 июн 22:44 koi8r-ps
drwxr-xr-x   4 root  wheel   512  5 июн 22:44 netscape3.language
drwxr-xr-x   4 root  wheel   512  5 июн 22:44 pgp.language
drwxr-xr-x   4 root  wheel   512  5 июн 22:44 pine.language
drwxr-xr-x   2 root  wheel   512  5 июн 22:44 pkg
drwxr-xr-x   5 root  wheel   512  5 июн 22:44 rispell
drwxr-xr-x   5 root  wheel   512  5 июн 22:44 wmcyrx
drwxr-xr-x   5 root  wheel   512  5 июн 22:44 xcode
drwxr-xr-x   4 root  wheel   512  5 июн 22:44 xruskb
[mp3]~ > 

Это содержимое портов, как видно - потребуется практически все:

X.language    - фонты для X11 (если не установлены при инсталляции)
xruskb        - переключатель kb для xfree86
d1489         - конвертер dos <-> koi8
elm.language  - добавка установок к Elm MUA
pine.language - тоже к Pine
pgp           - русские сообщения к pgp
rispell       - спел-чекер
wmcyrx        - wmaker по-русски

Теперь проверяем как у нас описана клавиатура в разделе Keyboard/XF86Config,
должно соответствовать:

Примечание: если у вас в сети масса старых XServers и вы планируете
пускать удаленные x-овые приложения - остановитесь на старом методе -
Вариант 2 с использованием Xmodmap, иначе в удаленных xterm'ах русские
буквы вам не ввести, придется доставлять еще софто для перключения и держать
этот switcher на экране или панели.

Вариант 1. Использование достижений Xkb (вы должны осознавать что при
        работе с клиентами от старых версий X11 у вас не будет работать
        keyboard-switcher на основе Xkb)

Section "Keyboard"
   Protocol        "Standard"
   XkbRules        "xfree86"
   XkbModel        "pc105"
   XkbLayout  	   "ru"
   XkbOptions "grp:caps_toggle"
#   XkbLayout       "us"
EndSection

XkbOptions "grp:caps_toggle" - переключатель "Caps/Lock"

Примечание: чтобы этот метод работал всегда - установите дополнительный
           переключатель xrus. (Сам по себе метод хорош, но при наличии
в сети большого количества старых X11, получаем "масло-маслянное": Xkb+xrus)

Вариант 2. Использование Xmodmap - старый, проверенный способ, работает
          как грабли.

Все что нужно сделать - вставить в секцию "Keyboard" опцию XkbDisable,
и настроить системный xmodmap:

пример:

---------------------------- /etc/XF86Config ----------------------------
...
Section "Keyboard"
   Protocol        "Standard"
   AutoRepeat      500 30
   LeftAlt         Meta
   RightAlt        Meta
   ScrollLock      Compose
   RightCtl        Control
   XkbDisable
   ^^^^^^^^^^- при наличии данной опции, все остальные Xkb* игнорируются
   и необходимо использовать Xmodmap или $HOME/.Xmodmap

   XkbRules        "xfree86"
   XkbModel        "pc101"
   XkbLayout       "ru"
   XkbOptions      "grp:ctrl_shift_toggle"
EndSection
...
-------------------------------------------------------------------------

----------------------------- Xmodmap -----------------------------------
! Cyrillic keyboard mapping table for XFree86-3.1.2 server of X11R6.
! Copyright (C) 1995 Cronyx Ltd., info@cronyx.ru
! Changes Copyright (C) 1995-1996 by Andrey A. Chernov, Moscow, Russia.
!
! This product is free Software, you can use it free of charge
! without restriction (e.g. use, copy, modify, merge, publish,
! distribute, sublicense, and/or sell), provided that
! the above copyright notice and this permission notice is retained.
!
! Code Table: KOI8-R
! Switcher: CapsLock
!
! WARNING: Control keys DON'T WORK when Russian mode is active due
! to an X11 bug (control handling when modeswitch is on),
! if you know, how to fix it, I am all ears.
!                                              
!
clear shift
clear control
clear mod1
clear mod2
clear mod3
clear mod4

!       Key       Base            Shift           Caps    ShiftCaps
!------------------------------------------------------------------------
keycode  9      = Escape          NoSymbol        Escape
keycode 10      = 1               exclam          exclam     1
keycode 11      = 2               at              quotedbl   2
keycode 12      = 3               numbersign      grave      3
keycode 13      = 4               dollar          asterisk   4
keycode 14      = 5               percent         colon      5
keycode 15      = 6               asciicircum     comma      6
keycode 16      = 7               ampersand       period     7
keycode 17      = 8               asterisk        semicolon  8
keycode 18      = 9               parenleft       parenleft  9
keycode 19      = 0               parenright      parenright 0
keycode 20      = minus           underscore      minus   underscore
keycode 21      = equal           plus            equal   plus
keycode 22      = BackSpace       NoSymbol        BackSpace
keycode 23      = Tab             NoSymbol        Tab
keycode 24      = q               Q               0xca    0xea
keycode 25      = w               W               0xc3    0xe3
keycode 26      = e               E               0xd5    0xf5
keycode 27      = r               R               0xcb    0xeb
keycode 28      = t               T               0xc5    0xe5
keycode 29      = y               Y               0xce    0xee
keycode 30      = u               U               0xc7    0xe7
keycode 31      = i               I               0xdb    0xfb
keycode 32      = o               O               0xdd    0xfd
keycode 33      = p               P               0xda    0xfa
keycode 34      = bracketleft     braceleft       0xc8    0xe8
keycode 35      = bracketright    braceright      0xdf    0xff
keycode 36      = Return          NoSymbol        Return
keycode 38      = a               A               0xc6    0xe6
keycode 39      = s               S               0xd9    0xf9
keycode 40      = d               D               0xd7    0xf7
keycode 41      = f               F               0xc1    0xe1
keycode 42      = g               G               0xd0    0xf0
keycode 43      = h               H               0xd2    0xf2
keycode 44      = j               J               0xcf    0xef
keycode 45      = k               K               0xcc    0xec
keycode 46      = l               L               0xc4    0xe4
keycode 47      = semicolon       colon           0xd6    0xf6
keycode 48      = apostrophe      quotedbl        0xdc    0xfc
keycode 49      = grave           asciitilde      0xa3    0xb3
keycode 51      = backslash       bar             backslash bar
keycode 52      = z               Z               0xd1    0xf1
keycode 53      = x               X               0xde    0xfe
keycode 54      = c               C               0xd3    0xf3
keycode 55      = v               V               0xcd    0xed
keycode 56      = b               B               0xc9    0xe9
keycode 57      = n               N               0xd4    0xf4
keycode 58      = m               M               0xd8    0xf8
keycode 59      = comma           less            0xc2    0xe2
keycode 60      = period          greater         0xc0    0xe0
keycode 61      = slash           question        slash   question
keycode 64      = Alt_L
keycode 65      = space           NoSymbol        space
keycode 66      = Caps_Lock       XF86ModeLock
keycode 67      = F1
keycode 68      = F2
keycode 69      = F3
keycode 78      = Mode_switch
keycode 109     = Control_R
keycode 113     = Alt_R

add shift   = Shift_L Shift_R
add control = Control_L Control_R
add mod1    = Alt_L Alt_R
add mod2    = Num_Lock

! Use CapsLock as rus/lat switch key.

clear lock
clear mod5
add mod5 = Caps_Lock Mode_switch
--------------------------------------------------------------------------
переключатель - "Caps/Lock".
имеете право изменить mapping по своему усмотрению, достаточное количество
примеров см. http://ftp.kiae.su/pub/cyrillic/x11
либо http://www.filesearch.ru/ и найти по запросу "xmodmap.ru"

строки из системного xinitrc или startx:

------------------------------ cut here ----------------------------------
...
usermodmap=$HOME/.Xmodmap
sysmodmap=/usr/X11R6/lib/X11/xinit/Xmodmap
...
if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi

if [ -f $usermodmap ]; then
    xmodmap $usermodmap
fi
...
---------------------------- end of cut ---------------------------------

[unix1]~ > ls -la /usr/X11R6/lib/X11/xinit/Xmodmap
-r--r--r--  1 root  wheel  4621 21 авг 13:06 /usr/X11R6/lib/X11/xinit/Xmodmap
[unix1]~ > 


Моменты из FAQ, удалить-закомментарить XkbDisable, и если у вас клавиатура
a-la Windows и некоторые клавиши неверно мапируются, попробуйте задать флаг:

XkbVariant "winkeys"

Locale: изменили с ru_SU.KOI8-R на -> ru_RU.KOI8-R
-------               ^------------------^--------> будьте внимательны,
а то после 2.2.x и xmodmap, нароете себе таких же проблем, как я на свою
безпамятную голову, описание ниже:

Важное: для тех кто исторически привык к LANG=ru_SU.KOI8-R - подчеркиваю:
"ru_RU", а не "ru_SU"!!! Будьте внимательны с настройкой среды, ибо
~~~~~~~ для X-locale просматривается `echo LC_CTYPE` и если она
!= ru_RU.KOI8-R - Xlib будет выдавать сообщение о том что установленное
локале не найдено и откатилось на "C" - соответственно у вас сразу возникнут
проблемы с вводом в `xterm` русских символов!!!


Изменения в локализации: старое ru_SU.KOI8-R заменили на ru_RU.KOI8-R !!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 Это я к тому что поправьте свои "старые" настроечные файлы СРЕДЫ или
добавьте строку в файл '/usr/X11R6/lib/X11/locale/locale.dir' [можно alias]

------------------ /usr/X11R6/lib/X11/locale/locale.dir -------------
koi8-r/XLC_LOCALE       ru_RU.KOI8-R
koi8-r/XLC_LOCALE       ru_SU.KOI8-R
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- у меня плохая память, ну никак не
мог высечь - что за фигня!!! :(((
---------------------------------------------------------------------

 После добавления строки с ru_SU.KOI8-R, или изменения везде и всюду:
"ru_SU.KOI8-R" -> на "ru_RU.KOI8-R" ВСЕ встанет на свои места!
    ^--------------------^

Примечание: выше в "Важное: для тех кто исторически привык к LANG=ru_SU.KOI8-R"
и далее по тексту, была опечатка, исправлено, если я кого запутал, ПРАВИЛЬНО:

использовать "ru_RU.KOI8-R", а не "ru_SU.KOI8-R"!!!

Я еще не пробовал XFree86 4.0 - как только попробую, добавлю описание
возможных проблем.

Нет никаких проблем, иногда лишь вылазят грабли с неверно собранным xterm
- видимо это историческая проблема. :(((
Если вы уверены что у вас правильно настроена локализация и переключение
на кириллицу в X'ах, попробуйте проверить переключение в rxvt или
реакцию xkeycaps после переключения в кириллицу.

Примечание: xkb - это конечно хорошо, но как только начнем пускать старые
xterm со старых систем и/или некоторые x11-apps - получим по _голове_
- вывод: xmodmap - надежнее.

Итог:

X11 Windows - можно запускать двумя способами:

- через запуск xdm, удобно тем что X11 всегда работает с Xauthority,
  те с X'овой авторизацией, удобно для работы на X-Terminal'ах, и на мой
  взгляд неудобно при возможности работы за локальным монитором.

- через xinit, достаточно выполнить команду `startx`

в обоих случаях пользователь может самостоятельно создать файлы:
.xinitrc - настройка environment, запуск x-clients, и того оконного менеджера
который дополнительно установлен в системе и отличен от default'ного.
.xserverrc - задать как будет запускаться Xserver:
 - через Xwrapper, используя или нет X-авторизацию, и тд и тп.

Итак, ситемное расположение фалов xinitrc и xserverrc:
sysclientrc=/usr/X11R6/lib/X11/xinit/xinitrc
sysserverrc=/usr/X11R6/lib/X11/xinit/xserverrc
- если не указаны в файле /usr/X11R6/bin/startx - задайте сами:
-------------------------- startx ------------------------------------------
...
sysclientrc=/usr/X11R6/lib/X11/xinit/xinitrc
sysserverrc=/usr/X11R6/lib/X11/xinit/xserverrc
...
if [ -f $userclientrc ]; then
    clientargs=$userclientrc
else if [ -f $sysclientrc ]; then
        clientargs=$sysclientrc
     fi
fi
...
if [ -f $userserverrc ]; then
    serverargs=$userserverrc
else if [ -f $sysserverrc ]; then
        serverargs=$sysserverrc
     fi
fi
...
xinit $clientargs -- $serverargs
      ^^^^^^^^^^^----^^^^^^^^^^^- вот с ними и запускаем.
----------------------------------------------------------------------------

Пользовательское месторасположение .xinitrc и .xserverrc - как всегда в
HOME-DIR.

Примеры xinitrc[.xinitrc] и xserverrc[.xserverrc]

---------------------------- xinitrc ---------------------------------------
#!/bin/sh
# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap

# merge in defaults and keymaps

if [ -f $sysresources ]; then
    xrdb -merge $sysresources
fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi

if [ -f $userresources ]; then
    xrdb -merge $userresources
fi

if [ -f $usermodmap ]; then
    xmodmap $usermodmap
fi

# start some nice programs

twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login
-----------------------------------------------------------------------------

еще один xinitrc
----------------------------- xinitrc ---------------------------------------
#!/bin/sh
# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/usr/X11R6/lib/X11/xinit/Xresources
sysmodmap=/usr/X11R6/lib/X11/xinit/Xmodmap

# merge in defaults and keymaps

if [ -f $sysresources ]; then
    xrdb -merge $sysresources
fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi

if [ -f $userresources ]; then
    xrdb -merge $userresources
fi

if [ -f $usermodmap ]; then
    xmodmap $usermodmap
fi

# setup environment to window manager and all off localy
# running applications (clients)
#--lavr bacause sometimes there are problems with environment implements

LANG=ru_RU.KOI8-R
LC_ALL=ru_RU.KOI8-R
MM_CHARSET=ru_RU.KOI8-R
TERM=xterm
TERMCAP=/etc/termcap
TERMINFO=/usr/lib/terminfo
PATH=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin
PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin
MANPATH=/usr/local/man:/usr/share/man:/usr/X11R6/man
INFOPATH=/usr/local/info:/usr/share/info:/usr/X11R6/info
MAIL=/var/mail/$USER
BLOCKSIZE=K
TZ=:/etc/localtime
TMPDIR=/var/tmp
PAGER=/usr/local/bin/less
LESS="-ceMX"
LESSBINFMT="*u[%x]"
LESSCHARSET="koi8-r"
LESSKEY="/usr/local/etc/lesskey.bin"
VISUAL=vi
EDITOR=vi
WWW_HOME=http://www.jinr.ru
NNTPSERVER=news.jinr.ru
XNLSPATH=/usr/X11R6/lib/X11/nls
XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB
XAPPLRESDIR=/usr/X11R6/lib/X11/app-defaults
ENRUS_DICT=/usr/local/share/enrus
export LANG LC_ALL MM_CHARSET TERM TERMCAP TERMINFO PATH MANPATH MAIL
export INFOPATH INFODIR BLOCKSIZE TZ TMPDIR PAGER WWW_HOME NNTPSERVER
export LESS LESSBINFMT LESSCHARSET LESSKEY VISUAL EDITOR
export XNLSPATH XKEYSYMDB XAPPLRESDIR ENRUS_DICT

# start some nice programs
xconsole -geometry 580x130-0+0 -daemon -notify -verbose -fn fixed -exitOnFail &
sleep 1
xterm -geometry 80x40+0+0 -name login -ls -sb &
sleep 1
exec fvwm2
----------------------------------------------------------------------------- 

Теперь варианты xserverrc:

-------------------------------- xserverrc ----------------------------------
/usr/X11R6/bin/X :0 -auth $HOME/.Xauthority -fn 8x13
-----------------------------------------------------------------------------
- запускаем Xserver с авторизацией, сие не требуется при запуске X11 через
  XDM потому что он всегда запускает с авторизацией.
-------------------------------- xserverrc ----------------------------------
/usr/X11R6/bin/Xwrapper :0 -auth $HOME/.Xauthority -fn 8x13 -bs
-----------------------------------------------------------------------------
- запускаем с авторизацией и через wrapper, доп.-security.

6. Совсем чуть-чуть про Кириллицу и Печать.

Не могу утвержать создается by default '/usr/libexec/lpr/ru' или после
выбора поддержки KOI8-R в PostInstall, но по-крайней мере пример там
должен помочь.

 Однако, с тех пор как многие изготовители выпускают принтеры с железно
вшитой кодовой страницей CP866, возможно потребуется использовать фильтр
- см. '/usr/libexec/lpr/ru/koi2alt', тогда '/etc/printcap' должен иметь
вид:

---------------------------- /etc/printcap -----------------------------
    lp|Russian local line printer:\
        :sh:of=/usr/libexec/lpr/ru/koi2alt:\
        :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:
------------------------------------------------------------------------ 

Собственно, кому-то нравятся свои или иные выходные фильтры,

для печати text-plain:

- todos, recode и тд и тп.

для печати Postsript:

- a2ps, koi2ps

Ниже пример /etc/printcap с выходным фильтром на локальный принтер - text-mode
и фильтром для печати koi8 на sun-postscript принтере с фильтром koi8-text
в ps:

---------------------------- /etc/printcap -----------------------------

lp|local line printer with koi8-r to alt translation:\
        :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:\
        :of=/usr/local/bin/todos:\
        :sb:sh:
lpraw|local line printer:\
        :lp=/dev/lpt0:sd=/var/spool/output/lprawd:lf=/var/log/lpd-errs:\
        :sb:sh:
Slp|remote postscript printer on sunct0:\
        :lp=:rm=sunct0.jinr.dubna.su:rp=lp:sd=/var/spool/output/Slpd:\
        :lf=/var/log/lpd-errs:
Slplkoi|remote postscript printer on sunct0 w/ koi8 to PS translation (local):\
        :lp=/dev/null:sd=/var/spool/output/Slpld:\
        :of=/usr/local/bin/koi2ps:\
        :lf=/var/log/lpd-errs:\
        :sb:sh:
Slprkoi|remote postscript printer on sunct0 w/ koi8 to PS translation (on Sun):\
        :lp=:rm=sunct0.jinr.dubna.su:rp=koips:sd=/var/spool/output/Slprd:\
        :lf=/var/log/lpd-errs:
------------------------------------------------------------------------

7. FreeBSD > 3.x и "имена русских файлов" от систем фирмы Microsoft.

 Если на жестком диске имеются разделы FS: MSDOS/Windows9x/2000/NT[hpfs]
с локализацией в Windows[CP1251], и мы собираемся их или другие носители,
такие как дискеты или zip, монтировать в OS Unix=FreeBSD, то можете
изменить /etc/fstab или задать опции при ручном монтировании, как указано
ниже:

------------------------------ /etc/fstab ------------------------------ 
/dev/ad0s2      /dos/c  msdos   rw,-W=koi2dos,-L=ru_RU.KOI8-R 0 0
------------------------------------------------------------------------

Для более полной информации см. `man mount_msdos` и опции "-W" и "-L"

Примечание: FS=NTFS, пока разрешается монтировать ТОЛЬКО на чтение (4.STABLE),
будьте осторожны и см. `man mount_ntfs`.

8. Секьюрити и root.

 Для начала будем рассматривать локальную машину с системой FreeBSD,
и основные концепции SECURITY следующие:

1. Защита сервисов от DDOS атак - "denial of service attack" обычно имеют
целью лишить систему необходимых ресурсов, как например используя возможные
ошибки _сетевого_стека_ - просто разрушить его или _умерщвить_ вашу машину
[ресурсы] посылкой плохого пакета.

2. Компроментация пользовательских аккаунтов: основана на прозрачности
стека TCP/IP и использовании некриптованных сетевых сервисов, таких как:

telnetd[telnet]/ftpd[ftp]/rshd[rsh]/rlogind[rlogin] и других которые могут

быть просто подслушаны в сети с помощью так называемых сетевых-прослушек:

- sniffer's

после чего, получив реальные пароли локальных пользователей вашей системы,
взломщики вторгаются в вашу систему и используя различные методы взлома
локальной системы - "Компроментация аккаунта супер-пользователя "root" через
пользовательские аккаунты" получают возможность работать в вашей системе как
"супер-пользователь" со всеми вытекающими отсюда последствиями.

3. Компроментация аккаунта супер-пользователя "root" через пользовательские
аккаунты - при наличии пользовательского доступа, взломщики используя
различные методы - чаще всего это ошибки и/или несовершенство системы и/или
неопытность, а мб нежелание администратора или службы security следить за
безопасность системы, получают права доступа супер-пользователя к системе с
вытекающими последствиями.

4. Установка так называемых "Backdoor" - я бы выразился "Лазеек", позволяет
оставлять в системе "дыры" для доступа ИЗВНЕ путем подмены существующих в
системе сервисов или программных средств на такие же, НО с внесенными
изменениями - лазейками для безконтрольного и несанкционированного доступа
в систему.

 --- продолжение быстро следует --- 

:) прим.[lavr]: затрахал меня уже этот PAM - нужно FAQ по-нему, хрен запомнишь
и разберешь эти мудацкие модули и что из software под этот сраный? pam
заточено - глюки в proftpd уже подмечены [уточним это в proftpd] 

9. BIND-8[9]

прим.[lavr] - скроить конфигурацию , вылизать на предмет
   доступа к снятию зон и другой интересной информации в плане НОМЕРА
   ВЕРСИИ и остальной секьюрити.

10. Разборки с MTA + MUA + avp-scanner

- popper [qualcomm - дырявый]

- popa3d [от Solar'а] - кайф, масенький и простой, только не забывать про
  security в отношении root/toor, а то полез сразу же проверять из под
  toor: telnet localhost 110 :((( и потом перековырял все, включая pam.conf :)

- imapd+cyrus

- ldap

- sendmail [mc + antispam + avp-scanner]

- postfix

- qmail - уссаться, эта хрень работает по принципу белое - должно быть белым,
  а черное - черным, те это угребище не лезет по MX, если основной - с меньшим
  весом выдает ошибку 4xx!!! - по мне это дичь, кому-то наоборот нравится,
  вкусы разныя - факт.

- procmail

11. Ставим и настраиваем: родной ftpd/wuftpd[2.6 - гавно, уж лучше 2.4.2-betaXX]
                         proftpd[anonftpd - увы пока тока под linux]

[virtual-hosts]

ftpd[родной] - не могу сравнивать с тем что было в FreeBSD 3.x, но родной от
2.2.x - близко не валялся с тем что в 4.STABLE.

настроечные файлы:

 /etc/ftpchroot   - список локальных пользователей для которых должна быть
                  выполнена процедура "chroot".
 /etc/ftphosts    - конфигурационный файл ВИРТУАЛЬНЫХ хостов.
 /etc/ftpwelcome  - Файл содержащий "приветствие" и примечание, отображается
                  ДО входа в систему.
 /etc/ftpmotd     - Файл содержащий "приветствие" и примечание, отображается
                  ПОСЛЕ входа в систему.

security:

 /etc/ftpusers    - список пользователей которым ЗАПРЕЩЕН доступ по ftp.
 /var/run/nologin - если существует этот файл, то доступ пользователям в
                    систему запрещен, при этом отображается содержание
                    данного файла.

куда заносятся логи:

 /var/log/ftpd    - файл статистики куда заносится трафик от anonymous.


12. Ставим и настраиваем Apache httpd - родной, затем попробуем apache-rus.

[virtual-hosts]

прим.: расписать примеры с комментариями.

13. FireWall - ipfw, ipfw+natd[нужна вторая карта и настройка роутера для
                               псевдо сетки "D"]

14. Приоритет порядкового номера еще не ясен, НО??? 

15. NIS и STABLE (какие такие тут могут быть проблемы? NIS себе и НИС :)
    (nis конечно же неплохо, но геморр и гулюк - по-правильному нужно
     на чтой-то другое переходить - ldap? [сделаем faq по ldap])

16. LDAP (с последующим FAQ)

17. Подготовить набор _поделиц_ и завернуть по-возможности в один "ПУСКАЧ"
типа:

- minimal install: RELEASE or STABLE
- "ПУСКАЧ" [вызовы разных Makefile - с проверками и настройками]
 все - хошь наблюдай, хошь плюй в потолок, хошь флиртуй, пей водяру и тд и тп.

18. Создаем софтверный рутер на базе xxxBSD:

- дисковый;
- бездисковый;

Прим.: наполнение и поступление пунктов, по мере занятости и выполнения работ
       возможно пересекающихся на фирме.

Sendmail8.11.x/Bind8[9]/Proftpd - все готово, осталось засеть и расписать,
в Новогодние Праздники как-то лень... :( Ой, NIS же еще. :)

Apache - ну разве что как использовать virtual-hosts - варианты.

Увы, времени нет совсем. :(((




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру