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

Автор: Андрей Лаврентьев

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

- 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 - варианты.

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

Обновлено: 12.03.2015