Путь к Linux. Руководство по установке и настройке

         

Обновление предыдущей версии Red Hat Linux


Для того, чтобы обновить уже установленную на вашей машине версию Red Hat Linux 2.0 до  2.1, запустите скрипт[4]

в текущем каталоге командой:

./upgrade

Если Вы перед выполнением настоящей инсталляции предпочитаете посмотреть,  что из программных продуктов подлежит замене, запустите команду:

./upgrade --test

  Перед запуском скрипт-файла неплохо выкинуть по возможности  как можно больше приложений. Вы может быть даже захотите перевести систему  в однопользовательский режим с 'telinit 1'. После оконачания обновления версии системы вы можете снова  вернуться в многопользовательский режим с 'telinit 3'.

  Предостережение: Ваши /etc/password и разные другие конфигурационные                   файлы могут быть переименованы,  например в etc/password.orig.



Общая структура дистрибутива


Дистрибутив Red Hat Linux 2.1 содержится в нескольких каталогах, организиваонных следующим образом:

· DOSUTILS — набор утилит для MS-DOS, которые являются аналогами популярных в UNIX служебных программ. С их помощью вы сможете распаковать архивы UNIX и создать загружаемые дискеты в UNIX-формате.

· REDHAT.DOC — различная вспомогательная информация по конфигурированию отдельных периферийных устройств и настройке системы, FAQ-, HELP-файлы и так далее.

· REDHAT — в этом каталоге и хранится сам дистрибутив системы. Фирма Red Hat полностью переработала традиционный Slakware в результате чего полностью изменилось содержание серий пакетов и их начинка. Но надо признать, что установка Linux в результате стала более простой!

Вот что находится в каталоге Red Hat:

· RPMS — пакеты в двоичном формате;

· base — небольшие архивы средств настройки файловых систем Linux;

· instimage — образ системы, используемый при установке в среде X Window;

· sets — символьные ссылки на пакеты в rpms с разделением по сериям; кроме того, в этом каталоге спрятано еще два подкаталога:

· updates — новые пакеты, которые включены в последний момент,



· images — образы загрузочных дисков boot и ramdisk.

Для того, чтобы установить систему вам, так же, как и для дистрибутива Slackware потребуется вначале создать загрузочные диски, используя данные в каталогах \sets\images\ и \sets\updates.



“Открытое ядро”


По многочисленным оценкам пользователей Linux это лучший CD-ROM лета-осени 1996 года. Питерский колллектив “УрбанСофт” ( 198903, Петродворец, а/я 77, e-mail: info@usoft.spb.su) может заслуженно гордиться успехом — диск получился отличный. Если вы планируете поставлять Linux-системы, “Открытое ядро” вполне можно вкладывать как дистрибутив операционной системы — отличное полиграфическое исполнение “яблочка”, высокое качество самого диска и наличие, хотя и совсем крохотной, инструкции для русскоязычных пользователей. Недостатка два — отсутствие должной рекламы самого диска и катастрофическая нехватка информации о самом Linux’е, позволяющая людям сделать первые шаги в системе. Впрочем это мы сейчас восполним.

На диске находится два дистрибутива Linux 1.2.13, который на сегодняшний день является промышленным стандартом системы — RedHat 2.1 и Slackware 3.0. Вы вольны выбирать тот дистрибутив, с которым приятнее работать.

Вот краткое содержание диска “Открытое ядро”:

Apps               Various Applications for Linux

DOS-TeX       TeX for DOS

Hurd               GNU Hurd Operating System

Mach              Mach Microkernel

PS                   PostScript Code

RedHat                       RedHat Linux Distrbution

Russian           Russian Fonts, Texts, etc.

TeX                 TeX documention

WWW                        Mirror of various WWW sites

dists                 Directory for BSD installation

dosutils           Various DOS programs for RedHat and Slackware Installation

floppies           Directory for BSD installation

freebsd.doc    BSD Documentation

linux.doc         Generic Linux documentation

redhat.doc      RedHat Linux documentation

slakinst           For Slackware installation

slack.doc         Slackware documentation

slakware         Slackware distribution

source                         Linux sources (from Slackware distribution)



Пароли группового доступа


Наряду с индивидуальным доступом к ресурсам системы каждого пользователя вы можете использовать файл /etc/groups для хранения паролей, позволяющего пользователю стать членом той или иной группы пользователей (вспомните групповые права доступа в каждом файле). Эта функция активизируется в том случае, если вы определили константу SHADOWGRP в файле /usr/src/shadow-YYMMDD/config.h[8].

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

Но если раньше вы могли воспользоваться программой pwconv, которая автоматически разбирала исходный файл паролей и создавала /etc/shadow, то для создания файла групповых паролей вам придется создать /etc/gshadow вручную.

Для этого достаточно выполнить следующие действия:

  touch /etc/gshadow

  chown root.root /etc/gshadow

  chmod 700 /etc/gshadow

По мере создания новых групп они будут автоматически добавляться как в /etc/group, так и в /etc/gshadow. Если вы модифицруете группу путем добавления или удаления в нее пользователя или измените групповой пароль доступа, файл /etc/gshadow автоматически будет изменен.

Для выполнения этих задач предназначены входящие в состав Shadow Suite программы groups, groupadd, groupmod, и groupdel.

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

       groupname:password:admin,admin,...:member,member,...

где,

groupname

Название группы

password

Зашифрованный групповой пароль

 admin

Список администраторов группы

 member

Список пользователей группы

Команда gpasswd используется только для добавления или удаления администраторов группы. Выполнение этих операций разрешается только администратору сиситемы (root) или одному из администраторов данной группы.

Пароли группы изменяются командой passwd также администратором системы или данной группы.



Пароли и профили пользователей


Концепция паролей традиционна для системы UNIX и поддерживается в практически неизменном виде вот уже более двух десятков лет. Идея проста -- проверить, имеет ли пользователь право доступа к системе путем сравнения идентификатора и пароля, введенных пользователем с эталонами, хранящимися в файле паролей (обычно — /etc/passwd).

Это обычный ASCII-файл, который вы можете отредактировать с помощью vi или Emacs. Как и большинство конфигурационных файлов UNIX, passwd состоит из записей, поля которых разделены двоеточиями. Вот пример одной из записей:

vovka:Xv75fs1Z521:102:0:Vladimir Vodolazkiy:/home/vovka:/bin/tcsh

Первое поле — vovka, содержит идентификатор пользователя. За ним следует пароль, который хранится в зашифрованном виде. Дело в том, что обычно файл /etc/passwd открыт на чтение всем категориям пользователей, поскольку позволяет в удобной форме получить информацию о том, кто и как работает в системе. И нужно это прежде всего не для людей, а для программ-демонов, выполняющих автоматическую обработку информации. Дабы максимально затруднить злоумышленнику взлом пароля в качестве ключа шифрования используется сам пароль. Поэтому при загрузке системы система шифрует введенный пользователем пароль и проверяет, совпадает ли полученная строка с содержанием поля в /etc/passwd. После чего и решает -- пускать пользователя в систему или нет.  Вся информация, которая содержится в оставшихся полях, по большому счету относится к профилю пользователя и используется при загрузке системы, о чем мы уже писали ранее.



Пароли входных соединений


Пароли входных соединений (как правило, по телефонному каналу) представляют собой еще одну дополнительную линию обороны для систем, разрешающих подключаться по внешним коммутируемым линиям связи или локальной сети. Если вы являетесь администратором системы, к которой необходимо обеспечить доступ извне,  то лишние средства защиты вам не повредят. Для того, чтобы включить режим проверки паролей входных соединений вам потребуется отредактировать файл /etc/login.defs и убедиться, что установлен ключ DIALUPS_CHECK_ENAB.

Информация о входящих соединениях содержится в двух файлах — /etc/dialups, которые содержат перечень входных линий (ttys), для которых осуществляется эта проверка . Например, если ваша система имеет два модема, установленных на COM3 и COM4, то этот файл будет содержать всего две строки:

   ttys2

   ttys3

Обратите внимание, что это не имена устройств — начальные символы “/dev” исключены. 

Второй файл — /etc/d_passwd/. В этом файле содержится полный путь оболочки, за которым следует необязательный пароль. Если пользователь регистрируется на линии, упомянутой в /etc/dialups, и его оболочка упомянута в файле /etc/d_passwd, то доступ в систему будет разрешен только после ввода соответствующего пароля.

Второй случай использования паролей входных соединений — настройка линий, ориентированных только на определенный тип соединения[9], например, соединения PPP или UUCP. Если пользователь пытается по этой линии получить доступ к терминальному режиму, то он должен знать специальный пароль, чтобы использовать эту линию.

Чтобы использовать режим верификации входных соединений вам необходимо создать упомянутые выше файлы. Для назначения пароля используется специальная программа dpasswd, которая помещает зашифрованный пароль в /etc/d_passwd.



Пересмотр системного вызова crypt(3)


Рассмотрим вначале, что пишется в руководстве о функции crypt(3):

“crypt является функцией для шифрования паролей. Она основана на использовании алгоритмов DES с некоторыми вариациями, направленными на предотвращение возможности использования аппаратных реализаций DES для ключевого поиска.

Ключом шифра является введенный пользователем пароль, а зашифровываемой строкой — пустая строка. содержащая только символы NULL.  Ядром (salt) при шифровании является двухсимвольная строка, элементы которой выбираются из множества a-zA-Z0-9./ . Эта строка используется для увеличения количества вариантов зашифровывания пароля в 4096 раз.

Путем извлечения младших 7 бит из каждого символа пароля формируется 56-битный ключ. Этот ключ используется для многократного шифрования константной строки. Полученное значение преобразуется в последовательность из 13 печатных символов ASCII, причем первые два символа являются собственно ядром. 

Внимание: пространство ключей состоит из 256, что равно 7.2е16 значений. Исчерпывающий поиск в одобном пространстве возможен при использовании компьютеров с массовым параллелизмом. Программное обеспечение, подобное программе crack, осуществляет перебор только незначительной части этого пространства, используемой преимущественно людьми для выбора паролей. Поэтому при выборе паролей необходимо, по меньшей мере, избегать использования общих слов и имен.

Сам алгоритм DES имеет ряд уязвимых мест, которые делают его использование весьма опасным для какой-либо цели, кроме проверки паролей. Если вы планируете использовать интерфейс crypt(3) для реализации крипотграфического проекта, не делайте этого: лучше возьмите одну из популярных книг или какую-либо из широкодоступных библиотек DES.”

Большинство из реализаций Shadow Suite содержит код для удвоения длины порля до 16 символов. Однако эксперты по алгоритмам DES категорически возражают против подобного подхода, поскольку алгоритм шифрования просто применяется два раза — вначале к левой, а затем к правой половине пароля.  В результате, с учетом особенностей формирования пароля с помощью программы crypt безопасность получаемого пароля ниже, чем раньше! Кроме того, администратор системы получает дополнительную головную боль, поскольку число пользователей, способных запомнить 16-символьный пароль несомненно меньше, чем 8-символьный.

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



Первое подключение устройства печати


Прежде всего нам необходимо убедиться, что Linux видит ваш принтер. Как правило, принтер подключается к единственному параллельному порту компьютера, который размещается либо на плате устройств ввода/вывода, либо непосредственно на материнской плате компьютера. Но “по теории” IBM PC может поддерживать до четырех параллельных портов, и в Linux  им соответствуют символьные устройства /dev/lp0 — /dev/lp3.

Поэтому первый ваш шаг состоит в проверке — есть ли в вашей системе соответствующие устройства. Если нет, их придется создать самостоятельно.  Для этого учтем, что во-первых, устройства в UNIX являются просто специальными файлами, которые можно создать с помощью программы mknod, а во-вторых, за параллельными портами зарезервированы номера устройств — старшее 6[11]

и младшие с 0 до 3 и соответствуют номеру устройства.

Вот синтаксис команд mknod для всех параллельных портов, поддерживаемых Linux (в скобках приведены базовые адреса портов ввода/вывода):

mknod /dev/lp0 c 6 0        (0x3BC)

mknod /dev/lp1 c 6 1         (0x378)

mknod /dev/lp2 c 6 2         (0x278)

mknod /dev/lp3 c 6 3         (0x......)

Обратите внимание на адреса портов! Как правило, в составе IBM PC входит порт с адресом 0x378, который соответствует не /dev/lp0, а /dev/lp1. И если вы по привычке будете соотносить “первый” порт DOS с “нулевым” портом UNIX, то искать причину неисправности вам придется довольно долго.  Как же избежать этой ошибки?

Наиболее простой путь состоит в экспериментальной проверке конфигурации. Во-первых, вы можете воспользоваться утилитами из DOS типа sysinfo или MSD, а во-вторых, можете просто попытаться “выбросить на печать” текущий каталог, например:

 ls -l > /dev/lp0

Если порта lp0 на вашей машине нет вы получите сообщение:

? /dev/lp0 unknown device

после чего вы можете попробовать использовать другое устройство. Если же все в порядке, то на принтер будет выведена “лесенка” примерно следующего вида[12]:

This is 1 line

              This is 2 line

                             This is 3 line

Причина этого явления состоит в том, что ориентированные для работы в DOS принтеры требуют для завершения строки два символа — возврата каретки <CR> (0x13) и перевода строки <LF> (0x10). А вот UNIX традиционно обходится одним символом — <LF>[13].

Бороться с этим неприятным эффектом вы можете двумя способами — либо отключить режим раздельного управления <CR> и <LF> — в этом случае принтер будет распознавать приход любого из этих символов как команду перейти к новой строке. Этот режим поддерживает большинство современных моделей принтеров, но его целесообразно использовать лишь в том случае, если вы используете только Linux. Если же вам приходится время от времени обращаться к старушке DOS, целесообразно использовать специальные программы-фильтры, о которых речь пойдет ниже. А сейчас, после того, как мы убедились в работспособности принтера, мы организуем поддержку системных средств печати, общепринятых для UNIX.



Первоначальная установка системы


После установки основных разделов винчестера система предложит список наборов дисков (diskset) для установки на вашем компьютере. Вначале, конечно, глаза разбегаются и хочется установить все по максимуму. Вот этого делать ни в коем случае не нужно. Успеется. А сейчас мы с вами должны получить нормальную работоспособную операционную систему. Поэтому вы выбираете только два набора дисков: A и D и приступаете к установке.

По умолчанию система выбирает режим установки с подсказкой для пользователя. Не возражайте, в этом случае в процессе установки на винчестер вы сможете узнать, что же вы записываете на диск. Сначала идет установка набора A. Это базовый набор и ваше участие в его установке минимально. Есть только один важный момент. Вам НЕ НУЖНО устанавливать ядро SCSIKERN, если у вас диск с контроллером IDE и наоборот, не нужно ядро IDEKERN, если у вас винчестер с интерфейсом SCSI. Если у вас есть и те и другие диски, устанавливайте ядро только для того винчестера, на который СЕЙЧАС устанавливаете систему. С остальными разберемся позже.

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

Второй набор дисков - D, содержит инструментальные средства разработки программного обеспечения в среде Linux. Вам потребуются:

·

компилятор Си (gcc);

·

библиотеки к нему;

·

ядро операционной системы (Linux kernel) в ИСХОДНЫХ ТЕКСТАХ;

·

включаемые файлы для подключения библиотек.

Устанавливать на диск компиляторы C++, Objective C и тем более LISP, PERL, препроцессоры Pascal, Modula, Fortran на этом этапе не нужно. Вы сможете сделать это потом.

Но вот установка выбранного нами программного обеспечения на винчестер завершена.  Система предлагает вам выбрать вариант загрузки Linux. На этом этапе генерации системы мы выбираем загрузку с дискеты. Вы устанавливаете чистую дискету (Вы ведь подготовили ее в самом начале процесса, не так ли?) и программа setup устанавливает на нее загрузчик ОС Linux.  Конфигурировать модем, мышку, и зональное время не надо. Скоро вы поймете почему.

Прежде всего, перезагрузитесь с полученной дискеты. Если загрузка оказалась неудачной, придется повторить процесс создания образа системы на диске и загрузочного диска, как указано выше. Вот именно поэтому и используется отдельная дискета для загрузки системы - ваши диски root и boot остались целости и сохранности. Поскольку MBR винчестера вы не изменяли, то при включении питания и отсутствии дискеты в окошке A: компьютер так же как и раньше будет загружать MS-DOS. А загрузка Unix будет осуществляться с созданной вами только что дискеты.

После загрузки системы с дискеты вы вновь должны зарегистрироваться с идентификатором root. Это, кстати, единственный доступный вам сейчас идентификатор.  Других в системе пока просто нет. А теперь мы приступим к процессу, который должен повергнуть рядового пользователя в священный трепет. А именно - сейчас мы с вами перекомпилируем ядро операционной системы.



Поддержка принтера в ядре Linux


Устанавливая систему вы наверняка позаботились о поддержке принтера. Если нет, то самое время перекомпилировать ядро системы. При этом вы должны позаботиться о следующем:

·

необходимо включить поддержку принтера (printer support);

·

необходимо включить сетевую поддержку (network support) вне зависимости от наличия у вас сетевой карты;

·

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



Подключение принтера


Компьютер без принтера сегодня представляется каким-то полуфабрикатом. А резкое падение цен на матричные, струйные и лазерные принтеры в течение последних двух лет способствуют массовому распространению технологии “персональной печати”. Конечно, первая мысль, ассоциируемая с принтером сегодня — это MS Word. Однако, как я постараюсь показать, Linux предоставляет пользователю более широкие возможности по управлению ресурсами принтера, чем мы привыкли видеть в Windows.



Подключение стримеров с FDD-интерфейсом


В этой главе мы поговорим только о стримерах, которые подключаются к порту приводов гибких магнитных дисков.  Современные мощные модели, ориентированные на интерфейс SCSI и обеспечивающие хранение нескольких Гигабайт останутся вне нашего рассмотрения по двум причинам. Во-первых, это достаточно дорогие изделия, в комплект которых входят собственные драйеры для UNIX-систем. А как только вы инициализировали интерфейс SCSI в своем компьютере, вы всполне можете просто перекомпилировать поставляемый драйвер под Linux. Вторая причина — большая доступность и распространенность малогабаритных стримеров с FDD-интерфейсом, и их практическая невостребованность в мире DOS и Windows. При этом, несмотря на то, что объем ленты типового стримера — 120-250 МБайт на сегодняшний день уже заметно уступает емкости винчестеров, использование лент для ведения архивов оказывается достаточно удобным и доступным — стоимость стримера не превышает 150$, а лента емкостью до 250 Мбайт стоит на дороже 15$.



Подводя итоги


[1]

Двухтомник “Ресурсы Windows95” выпущенный Microsoft Press на самом деле является просто руководством по работе с операционной системой и по-честному должен был бы вкладываться в коробку с самой системой, как это происходит с OS/2, SCO UNIX, Sun SOLARIS и другими приличными

операционными системами.

[2]

Поскольку каждые три-четыре месяца выпускаются новые версии CD-ROM, содержащие новые версии ядра системы и содержание FTP-серверов (таких как sunsite),  “Инфосервис” не завозит большие партии дисков, предпочитая поставлять максимально свежий программный продукт.

[3]

Также заметьте, что если Вы   используете карту PCMCIA SCSI, то Вам необходимо использовать boot образ,   имеющий  поддержку "Adaptec".

[4]

у Вас должен быть предварительно инсталлирован Perl.

[5]

который вы можете найти на FTP-серверах России, а также на CD-ROM TAE Linux Vol.3 и на диске “Открытое Ядро”

[6]

Поскольку вы использовали ключ -m. Это очень удобное средство для начальной начинки домашних каталогов различными скриптами и конфигурационными файлами.

[7]

Пожалуйста, не путайте Майка с Майклом!

[8]

Конечно, при этом вам необходимо будет полностью перестроить весь пакет Shadow Suite.

[9]

Или, лучше сказать, протокола.

[10]

Более подробную инфромацию об этих режимах вы найдете в файлах  /usr/include/shadow/pwauth.h и pwauth.c.

[11]

Ах,эти магические числа! Шестой номер для устройства печати ведет свой путь из седой старины, и вы встретите его и в OS/360, и в RT-11 и во многих других системах

[12]

Мы полагаем, что русификацией процесса печати займемся чуть позже.

[13]

Эта традиция также имеет давние корни — она восходит к тем временам, когда для получения “твердой копии” использовались электрифицированные печатные машинки. Для того времени замена одного нажатия на кнопку перевода строки и одного ручного “вжика” — возврата каретки в исходное положение на один управляющий символ, выполняющий обе операции, казалась небывалым достижением технического прогресса.

[14]

Автор понимает неубедительность своих умозаключений: ведь в отличие от DOS и Windows модем на COM3 и мышка на COM1 не конфликтуют друг с другом, хотя и делят одно и то же прерывание. Впрочем, вы всегда можете отличиться, предложив новый драйвер параллельного порта, использующий IRQ. Всяко, это будет куда эффективнее, чем существующее решение!

[15]

Понятно, что конкретное имя каталога зависит от версии системы и типа дистрибутива.



Посыпая голову пеплом...


Хочется, конечно же, прослыть всеведущим гуру, для которого никаких проблем в Linux не существует. Но надо все же смотреть правде в глаза — чем дальше разбираешься, тем более становится очевидным, как мало знаешь! Все-таки система, построенная на основе ОС UNIX с четвертьвековым стажем, которую собирает и отлаживает несколько тысяч человек по всей планете (не секрет, что на сегодняшний день Linux считается единственным примером столь масштабного и плодотворного сотрудничества специалистов всего мира, объединенных сетью Internet), содержит столько особенностей и интересных моментов, что на их изучение уйдут годы.

Поэтому автор, рядясь в тогу скромника должен заявить, что в некоторой части приведенный здесь материал является результатом “толкования” информации, приведенной в многочисленных справочных материалах по Linux. Тем не менее, автор полагает, что попытка создания достаточно подробного руководства по установке и настройке системы Linux должна была быть предпринята. Насколько это удалось, предстоит судить вам.

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

Кандидат технических наук

В.В.Водолазкий

vvv@rinet.ru




Права доступа к файлам в системе UNIX


Основным понятием, определяющим все отношение к "правам и обязанностям  пользователей" являются атрибуты файла. Напомню, что атрибуты файла, принятые в MS-DOS заимствованы из CP/M, а туда попали из UNIX. Насколько удачным оказалось использование "испорченного телефона" можно судить по большому количеству признаков, одним из которых является, например, количество вирусов. В  этой области Microsoft есть чем гордиться — MS-DOS и впрямь впереди планеты всей. Но давайте вернемся к правам доступа. Начнем со знакомой вам (если вы уже установили Linux)  программы распечатки каталогов ls. Обычно программа не балует пользователя избытком информации, но если вы воспользуетесь ключом -l, то получите следующее:

-rw-rw-rw-     1       vovka      root       4067    Nov 5 13:12  caterpillar.tar.z

Что же нам сообщила система?  Первая, непонятная на первый взгляд,  последовательность символов как раз и представляет собой права доступа к этому файлов со стороны различных категорий пользователей. Затем (1)  выводится количество синонимов, под которыми данный файл известен системе. Далее вам сообщается имя владельца файла (vovka), то есть идентификатор лица его создавшего, и группа, к которой он принадлежит (root). Ну а затем все как обычно - длина файла в байтах, дата и время его создания и собственно имя файла. Надеюсь, что пользователи DOS обратят внимание на тот факт, что в UNIX точка в имени файла лишена своего таинственного ореола -- у файла может быть несколько расширений (Это не блажь. Несколько расширений используется для обозначения последовательности операций, которым подвергалась информация, записанная в файле. Так, в нашем примере, .tar -- расширение устанавливаемое одноименной программой архивации, а .z добавляется программой упаковки gzip. В результате для распаковки архива вам потребуется вначале распаковать файл с помощью gunzip, а уже затем разархивировать с помощью tar. А вот если вам встретится архивный файл с расширением .tgz — придется воспользоваться программой tar и ее встроенным распаковщиком — прим.ред.).


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

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

Наряду с защитой от несанкционированного доступа к файлам, каталогам и устройствам (без каких-либо проблем вы можете ограничить доступ к каталогам или устройствам, которые являются так называемыми специальными файлами UNIX) механизм прав доступа используется и для контроля целостности программного обеспечения системы. Как вы знаете, немалую часть системных программ составляют скрипт-файлы, написанные на языке оболочек (shell). Но как отличить обычный текстовый файл от исполняемого скрипт-файла? Здесь на помощь приходит атрибут x из записи прав доступа. Если этот атрибут установлен, вы можете исполнять файл как обычную UNIX-программу, если же нет...

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



ksh myscript

на мой взгляд, просто неприлично. К счастью, вы можете разрешить системе интерпретировать любой файл как исполняемый (естественно, назначение этого атрибута файлу с текстами  анекдотов не заставит ваш компьютер хохотать до упаду!). Для этого вы можете воспользоваться командой chmod. Синтаксис команды следующий:

chmod {a,u,g,o} {+|-} {r,w,x} <имя файла>

Первая группа кодов указывает на категорию пользователей (a-все, u-владелец файла, g-группа, к которой принадлежит владелец, o-все прочие). Плюс или минус устанавливают или отменяют атрибут, который кодируется тем же символом, который появляется при выводе каталога.

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

chmod u+rwx prettysript

chmod g+rx prettyscript

chmod o+x prettyscript

А-а-а-а! -- воскликнет искушенный пользователь, -- а если текстовый редактор по умолчанию разрешает доступ на чтение и запись всем пользователям? Тогда придется каждый раз отдельно запрещать доступ по записи и приведенные выше примеры носят абстрактный характер!

Читатель, как всегда оказывается прав. Приведенный выше синтаксис chmod ориентирован больше на любителя, чем на настоящего UNIX-оида, который не боится использовать самые разные системы счисления. Дело в том, что впервые UNIX был реализован на компьютерах фирмы Digital, в которой в отличие от Intel была принята не шестнадцатиричная, а восьмиричная система счисления (каждый разряд числа, записанного в этой системе счисления соответствует не четырем, а трем двочным разрядам, а при записи чисел вполне хватает цифр от 0 до 7). Обратите внимание, что права доступа для каждой категории пользователей могут быть записаны с помощью одного восьмиричного числа. И chmod поддерживает этот формат.

Вот например, как можно записать приведенную выше настройку прав доступа с помощью одной строки: 

chmod 751 prettyscript

Что означает сие непонятное число? Давайте расшифруем его биты и, как

говорится, "приведем в соответствие". Вот что мы имеем:

  u7       g5       o1

1 1 1    1 0 1   0  0  1

r w x     r w x    r w x

В результате, при распечатке каталога мы получим вот такую запись прав доступа:

  -rwxr-x--x

что в полной мере соответствует нашим ожиданиям. Кстати, в литературе и документации к системе обычно ссылка на права доступа дается именно в восьмиричном счислении, поэтому наткнувшись на предложение типа "установите права доступа для данного файла 640", не мудрствуйте, а просто выполните команду chmod 640 <имя файла>.


долгожданный пример, демонстрирующий использование механизма


Вот, наконец, долгожданный пример, демонстрирующий использование механизма поддержки теневых паролей программой, которая нуждается в этом механизме, но изначально его не обслуживает. Пример использует сервер протокола Point-to-Point (pppd-1.2.1d), который имеет режим аутентификации пользователей PAP, с использованием записей из файла /etc/passwd вместо PAP и CHAP файлов.
Этот режим используется не слишком часто, но если вы установите Shadow Suite то он просто не будет работать вообще, поскольку пароли более не хранятся в файле /etc/passwd.
Программы аутентификации пользователей  pppd-1.2.1d вы можете найти в файле  /usr/src/pppd-1.2.1d/pppd/auth.c.
Вначале вам придется добавить в начало этого файла несколько директив, включающих заголовочные файлы. Обратите вниамание на директивы условной компиляции.
  #ifdef HAS_SHADOW
  #include <shadow.h>
  #include <shadow/pwauth.h>
  #endif
Следующий шаг — модификация исходного кода. Мы продолжаем модифицировать файл auth.c.
Вот функция auth.c до модификации:
   /*
   * login - Проверка имени пользователя и его пароля по
   * данным из базы /etc/passwd.
   *
   * Возвращает:
   *      UPAP_AUTHNAK: Регистрация неудачна.
   *      UPAP_AUTHACK: Регистрация прошла успешно.
   * В любом случае msg указывает на соответствующее сообщение.
   */
  static int
  login(user, passwd, msg, msglen)
      char *user;
      char *passwd;
      char **msg;
      int *msglen;
  {
      struct passwd *pw;
      char *epasswd;
      char *tty;
      if ((pw = getpwnam(user)) == NULL) {
          return (UPAP_AUTHNAK);
      }
       /*
       * XXX Если пароля нет, регистрируемся без него.
       */
      if (pw->pw_passwd == '\0') {
          return (UPAP_AUTHACK);
      }
      epasswd = crypt(passwd, pw->pw_passwd);
      if (strcmp(epasswd, pw->pw_passwd)) {
          return (UPAP_AUTHNAK);
      }
      syslog(LOG_INFO, "user %s logged in", user);
      /*
       * Заполняем запись wtmp для этого пользователя.


       */
      tty = strrchr(devname, '/');
      if (tty == NULL)
          tty = devname;
      else
          tty++;
      logwtmp(tty, user, "");             /* Добавляем запись wtmp */
      logged_in = TRUE;
      return (UPAP_AUTHACK);
  }
Пароль пользователя помещается в поле pw->pw_passwd,  поэтому нам придется воспользоваться функцией getspnam, которая запишет пароль в spwd->sp_pwdp.
Для выполнения реальной аутентификации мы добавим функцию pwauth, которая будет автоматически выполнять вторичную проверку, если это указано в настройках теневых паролей.
Вот код функции auth.c после модификации, обеспечивающей работу с теневыми паролями:
   /*
   * login - Проверка имени пользователя и его пароля по
   * данным из базы /etc/passwd.
   *
   *
   * Функция модифицирована для работы со средствами поддержки
   * Linux Shadow Password Suite если установлен режим USE_SHADOW
   *
   * Возвращает:
   *      UPAP_AUTHNAK: Регистрация неудачна.
   *      UPAP_AUTHACK: Регистрация прошла успешно.
   * В любом случае msg указывает на соответствующее сообщение.
*/
  static int
  login(user, passwd, msg, msglen)
      char *user;
      char *passwd;
      char **msg;
      int *msglen;
  {
      struct passwd *pw;
      char *epasswd;
      char *tty;
  #ifdef USE_SHADOW
      struct spwd *spwd;
      struct spwd *getspnam();
  #endif
      if ((pw = getpwnam(user)) == NULL) {
          return (UPAP_AUTHNAK);
      }
  #ifdef USE_SHADOW
          spwd = getspnam(user);
          if (spwd)
                  pw->pw_passwd = spwd->sp-pwdp;
  #endif
       /*
       * XXX Если пароля нет, НЕ ПОЗВОЛЯЕМ регистрироваться!
       */
      if (pw->pw_passwd == '\0') {
          return (UPAP_AUTHNAK);
      }
  #ifdef HAS_SHADOW
      if ((pw->pw_passwd && pw->pw_passwd[0] == '@'
           && pw_auth (pw->pw_passwd+1, pw->pw_name, PW_LOGIN, NULL))
          || !valid (passwd, pw)) {


          return (UPAP_AUTHNAK);
      }
  #else
      epasswd = crypt(passwd, pw->pw_passwd);
      if (strcmp(epasswd, pw->pw_passwd)) {
          return (UPAP_AUTHNAK);
      }
  #endif
      syslog(LOG_INFO, "user %s logged in", user);
      /*
       * Формируем запись wtmp.
       */
      tty = strrchr(devname, '/');
      if (tty == NULL) tty = devname;
          else tty++;
      logwtmp(tty, user, "");             /* Добавляем запись wtmp */
      logged_in = TRUE;
      return (UPAP_AUTHACK);
  }
Тщательный анализ кода позволяет заметить еще одно важное изменение. Если в первоначальной версии программы разрешался доступ к системе пользователю, для которого не был введен пароль в файле /etc/passwd, то теперь такой безответственный пользователь в систему просто допущен не будет.
Теперь нам необходимо модифицировать сборочный файл Makefile, таким образом, чтобы учитывались следующие два фактора:
·
наличие условной переменной USE_SHADOW;
·
подключение библиотеки libshadow.a на этапе компоновки.
Для этого при редактировании Makefile вы должны добавить:
LIBS = -lshadow
а затем найти строку:
       COMPILE_FLAGS = -I.. -D_linux_=1 -DGIDSET_TYPE=gid_t
и изменнить ее на:
COMPILE_FLAGS=-I.. -D_linux_=1 -DGIDSET_TYPE=gid_t -DUSE_SHADOW
Все, теперь для запуска примера достаточно запустить make install.

Процесс загрузки системы


Вопреки бытующему мнению о неподъемности и монстрообразии UNIX-систем вы можете загрузить Linux как с жесткого диска, так и с дискеты. Причем в последнем случае вы можете поместить в 1 МБ и ядро системы, и ряд прикладных программ или утилит. Работали же когда-то люди на ЕС-1840 или ДВК-2!  Более того, в ряде московских фирм, занимающихся промышленных компьютеров, проводились успешные опыты по установке Linux на машины, оборудованные только flash-карточками!

При включении машины ПЗУ BIOS выполняет различные тесты, которые позволяют оценить степень исправности аппаратных средств, после чего начинается собственно загрузка системы. Как вы вероятно помните из классики, вначале обычно опрашивается привод гибких магнитных дисков, а затем винчестер. В любом случае, BIOS загружает в строго определенное место памяти начальный загрузчик (собственно поэтому и сектор называется загрузочным). Ну а в случае жесткого диска —   главный загрузочный сектор (Master Boot Record - MBR).

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

Гибкий магнитный диск.

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

Винчестер. Ситуация изменяется радикально. Код из MBR анализирует содержимое таблицы разделов (partition table), которая, кстати, находится в этом же секторе, в поисках активного раздела, с которого разрешена загрузка. После этого из выбранного раздела считывается его загрузочный сектор (который есть у каждого из  разделов — это важно!), которому передается управление. Ну а дальше история повторяется: код из сектора загрузки раздела загружает в оперативную память образ системы и передает ей управление.


Вот здесь уже возможны варианты. Но, как правило, глупо создавать специальный раздел для хранения одного только ядра системы (напомним, что никакой файловой системы загрузчик не понимает). Один из выходов — использование LILO (Linux Loader), который вы, скорее всего, уже использовали.

Мы не будем сейчас описывать LILO, а лишь отметим, что этот загрузчик не ограничен значением флага загрузки и позволяет загрузить любую систему (не обязательно Linux), из числа указанных в списке.

Конечно же, есть и другие загрузчики. Но поскольку LILO была написана специально для Linux, она имеет ряд весьма примечательных особенностей, как например, возможность передачи аргументов ядру на этапе загрузки, что позволяет изменить установки ряда параметров системы "на лету".

Вообще говоря, LILO является своеобразным стандартом и альтернативные загрузчики, такие как bootlin или bootactv постепенно вытесняются и уходят в прошлое.

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

Если вы установили сжатое ядро, его необходимо распаковать. Кстати, поэтому первое, что вы видите на экране, это сообщение программы распаковки:

             Uncompressing Linux.....

Скорее всего, ваш компьютер оснащен SVGA-адаптером. В этом случае, в зависимости от конфигурации ядра системы, вам может быть предоставлена возможность установить один из нестандартных режимов видеоадаптера, например 100 символов на 40 строк. Зачем это надо? Дело в том, что далеко не все терминалы имеют разрешение 80*25. Напомню, что количество символов в строке ведет свою историю от 80-колоночных перфокарт, но ведь ветераны помнят, что были еще и 132-"дырочные" карты! Поэтому вы имеете возможность настроить свою систему таким образом, чтобы программное обеспечение, рассчитанное на работу с конкретным терминалом, корректно выполнялось на вашей машине.

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



Вот, например, что выводится на экран при загрузке моей “старушки” 80386 :

Console: colour EGA+ 80x25, 8 virtual consoles

Serial driver version 3.99a with no serial options enabled

tty00 at 0x03f8 (irq = 4) is a 16450

tty01 at 0x02f8 (irq = 3) is a 16450

tty02 at 0x03e8 (irq = 4) is a 16550A

lp_init: lp1 exists, using polling driver

snd2 <SoundBlaster Pro 4.5> at 0x220 irq 10 drq 1

snd6 <SoundBlaster 16 4.5> at 0x220 irq 10 drq 5

snd7 <SoundBlaster MPU-401> at 0x330 irq 10 drq 0

snd1 <Yamaha OPL-3 FM> at 0x388 irq 0 drq 0

Sony I/F CDROM : SONY     CD-ROM CDU33A    Rev 1.0d with tray load mechanism

  using 16384 byte buffer, capable of audio playback

Calibrating delay loop.. ok - 7.98 BogoMips

Memory: 6992k/8192k available (532k kernel code, 384k reserved, 284k data)

Floppy drive(s): fd0 is unknown type 0, fd1 is 1.44M

Swansea University Computer Society Net2Debugged [1.30]

IP Protocols: ICMP, UDP, TCP

PPP: version 0.1.2 (4 channels)

TCP compression code copyright 1989 Regents of the University of California

PPP line discipline registered.

SLIP: version 0.7.5 (4 channels)

CSLIP: code copyright 1989 Regents of the University of California

Linux version 1.0.8 (root@mntr) #3 Sun Nov 13 21:19:51 boot ibcs init 1994

Partition check:

  hda: hda1 hda2

  hdb: hdb1 < hdb5 > hdb2 hdb3 hdb4

VFS: Mounted root (ext2 filesystem) readonly.

Но! Linux при загрузке не проверяет правильность установки настроек драйверов. В частности, Sound Blaster настроен на IRQ7, но когда-то сгенерированный под IRQ10 драйвер так и смущает меня каждый день! А вот на сообщение о типах микросхем коммуникационного порта советую обратить внимание. В этих строчках может крыться объяснение того факта, почему ваш замечательный Zyxel не работает со скоростями выше 9600.

И вот, после того, как конфигурирование системы закончено, Linux переключает процессор в защищенный режим. Все! Шутки закончились, и похоже, вирусная эпоха тоже. Конечно, переключение происходит без аплодисментов и дифирамбов, но для процесса запуска системы это очень важный этап!



А вот теперь наступает пора файловой системы. Ядро пытается смонтировать root filesystem (смотри последнюю строчку в протоколе загрузки). Точка монтирования системы устанавливается командой rdev).

Тип монтируемой системы опредеяется автоматически, важно только, чтобы она поддерживалась ядром. Имейте в виду, что если смонтировать файловую систему не удается, Linux ударяется в панику (так и называется - panic mode) и "насмерть завешивает машину".

Затем ядро стартует фоновую задачу /etc/init (PID=1), которая считывает конфигурационный файл /etc/inittab, отрабатывает его, а затем запускает скрипт-файл оболочки /etc/rc. Этот скрипт запускаает все фоновые задачи (они же демоны), которые обязаны заботиться об обслуживании периферийных устройств, очередей запросов на печать и прочей рутиной. Кстати, в зависимости от режима запуска системы вызываются различные варианты скрипт-файлов /etc/rc.

Это, между  прочим, совсем не простой процесс и его стоит рассмотреть подробнее. Вот фрагмент типового файла /etc/inittab:

# автоматический старт (уровень 5).

id:5:initdefault:

# Инициализация системы при загрузке

si:S:sysinit:/etc/rc.d/rc.S

# запуск однопользовательского режима

su:S:wait:/etc/rc.d/rc.K

# Инициализация многопользовательского режима

rc:123456:wait:/etc/rc.d/rc.M

# Реакция на комбинацию из трех пальцев

ca::ctrlaltdel:/sbin/shutdown -t3 -rf now

# Реакция на отказ блока питания (разгрузка системы в

# однопользовательском режиме)

pf::powerfail:/sbin/shutdown -f +5 "THE POWER IS FAILING"

# Откат разгрузки системы, если питание восстановлено

pg:0123456:powerokwait:/sbin/shutdown -c "THE POWER IS BACK"

# Если питание восстановлено в однопользовательском режиме -

# запустить многопользовательский режим (он же уровень 5)

ps:S:powerokwait:/sbin/init 5

Формат записей в файле  /etc/inittab вы можете получить, обратившись к системе подсказок man, а я хочу обратить ваше внимание на следующее:

При старте системы запускается конфигурационный файл rc.S (системные настройки). Затем инициализируется однопользовательский режим - rc.K. При этом осуществляется проверка целостности файловых систем, подлежащих монтированию, и, если ошибок нет, инициализируется многопользовательский режим (rc.M).



# /etc/rc/rc.S

#

# Системные настройки, выполняемые при загрузке системы

# Вся настройка пользователя должна осуществляться в rc.local

PATH=/sbin:/usr/sbin:/bin:/usr/bin

# разрешаем свопинг

#/sbin/swapon -a  # для всех разделов подкачки

swapon /dev/hdb2  # только для конкретного

# Проверяем, не смонтирована ли корневая система как read-only

READWRITE=no

if echo -n >> "Testing filesystem status"; then

 rm -f "Testing filesystem status"

 READWRITE=yes

fi

# Проверяем целостность всех файловых систем

if [ ! $READWRITE = yes ]; then

 /sbin/fsck -A -a

# В случае ошибок переход в однопользовательский режим

# Все сообщения по-английски, поскольку русификаторы пока не

# загружены

 if [ $? -gt 0 ] ; then

  echo

  echo

  echo "**************************************"

  echo "fsck returned error code - REBOOT NOW!"

  echo "**************************************"

  echo

  echo

  /bin/login

 fi

 # Переключение файловой системы в режим read-write

 echo "Remounting root device with read-write enabled."

 /sbin/mount -w -n -o remount /

else

#

# При включении ядро системы находилось в режиме read-write, что

# не позволяет проверить целостность системы. Выдаем рекомендации

# по устранению этого дефекта

#

   cat << EOF

 

*** Root partition has already been mounted read-write. Cannot check!

For filesystem checking to work properly, your system must initially mount

the root partition as read only. Please modify your kernel with 'rdev' so that

it does this. If you're booting with LILO, type:

  rdev -R /vmlinuz 1

         (^^^^^^^^  ... or whatever your kernel name is.)

 

If you boot from a kernel on a floppy disk, put it in the drive and type:

  rdev -R /dev/fd0 1

 

This will fix the problem *AND* eliminate this annoying message. :^)

 

EOF

 sleep 10

fi

 

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

/bin/rm -f /etc/mtab* /etc/nologin /etc/utmp



# И создаем новые версии.

cat /dev/null >> /etc/utmp

# монтируем файловые системы, приведенные в /etc/fstab

# за исключением NFS, поскольку TCP/IP еще не установлен

/sbin/mount -avt nonfs

# Настройка системных часов

if [ -x /sbin/clock ]; then

  /sbin/clock -s

fi

# Установка содержимого файлов /etc/issue и /etc/motd

# Это обычные текстовые файлы, содержащие текущие новости из жизни

# системы (/etc/issue) и так называемую "мысль дня" (/etc/motd)

#

# Вы можете без колебаний заменить приведенные ниже строки на

# собственные варианты. Например, выбор случайной строки из текстового

# файла, содержащего пословицы и поговорки.

  echo > /etc/issue echo Welcome to Linux `/bin/uname -a |

/bin/cut -d\  -f3`. >> /etc/issue echo >> /etc/issue

echo "`/bin/uname -a | /bin/cut -d\  -f1,3`. (Posix)." > /etc/motd

# Настройка коммуникационных портов

# Обратите внимание, что строка вызова скрипта настройки

# коммуникационных портов по умолчанию закрыта комментарием. Дело в том,

# что довольно часто загрузка прерывается в тех случаях, когда параметры

# настройки не соответствуют реальной конфигурации компьютера. Поэтому

# рекомендуется вначале отладить этот скрипт и лишь затем

# инициализировать его при загрузке.

#/bin/sh /etc/rc.d/rc.serial

# инициализируем сервер доменных имен

named

# Конец файла rc.S

#! /bin/sh

#

# Конфигурирование системы для работы в многопользовательском режиме

  # Сообщаем пользователю о переходе в многопользовательский режим

  echo "Going multiuser..."

  # Запуск демона update в фоновом режиме

  /sbin/update &

  # Установка времени задержки выключения монитора (в минутах)

  /bin/setterm -blank 15

  # Инициализация сетевой поддержки

  if [ -x /etc/rc.d/rc.inet1 ];

  then

        /bin/hostname vvv           # имя хоста

        /bin/domainname rinet.ru    # и домена

        /bin/sh /etc/rc.d/rc.inet1  # запуск конфигурационных скриптов

        /bin/sh /etc/rc.d/rc.inet2



  else

        /sbin/hostname_notcp vvv    # если TCP/IP не установлен

        /bin/domainname rinet.ru

   echo

   echo "Since you don't have TCP/ IP installed, syslogd will complain when it first"

   echo "starts. The warning can be ignored."

   echo

       /usr/sbin/syslogd

       /usr/sbin/klogd

       /usr/sbin/lpd

       /usr/sbin/crond

  fi

  # удаление устаревших блокировочных файловв

  /bin/rm -f /usr/spool/locks/* /usr/spool/uucp/LCK..* /tmp/.X*lock 1> /dev/null 2> /dev/null

  # Отключение зависших сетевых гнезд

  if [ -r /tmp/hunt -o -r /tmp/hunt.stats ]; then

    echo "Removing your stale hunt sockets from /tmp..."

    /bin/rm -f /tmp/hunt*

  fi

  # Обновление всех связей статических библиотек

  /sbin/ldconfig

  # И наконец, запуск локальной процедуры настройки

  /etc/rc.d/rc.local

  # Конец файла rc.M

Кроме того, inittab содержит команды инициализации виртуальных консолей и коммуникационных портов, которые позволяют подключить к Linux-системе удаленные терминалы или другие host-машины. Но к этому вопросу мы вернемся отдельно.

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

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


Противопоказания


Shadow Suite все-таки не панацея. И как с любым лекарством для него существует ряд противопоказаний к использованию. Вот ряд ситуаций, в которых использование этих программ не поможет вам решить проблемы защиты:

· На вашем компьютере просто нет пользовательских счетов;

·

Компьютер работает в локальной вычислительной сети и используете для верификации имен пользователей и их паролей систему NIS (Network Information Srevice);

·  Ваш компьютер используется терминальными серверами для верификации прав пользователей с помощью NFS, NIS или каким-либо другим способом;

·  Ваша машина использует для верификации пользователей другое программное обеспечение, которое не предполагает использования теневых паролей и вы при этом не располагаете его исходным кодом.



Проверяем работоспособность ядра


Для этого скопируйте ядро системы на дискету (обратите внимание, что диск /dev/fd0 рассматривается в приведенной ниже команде как устройство не имеющее файловой структуры!):

cat zImage > /dev/fd0

А затем выполните несколько настроек ядра на дискете:

rdev /dev/fd0 /dev/hda3

rdev -v /dev/fd0 -1

rdev -R /dev/fd0 1

rdev -r /dev/fd0 0

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

После того, как вы выяснили, что новая версия загружается без каких лмбо ужасных сообшений об ошибках имеет смысл научить Linux загружаться без дополнительной дискеты. При этом хотелось бы конечно, чтобы и MS-DOS также не потерял своей способности к загрузке. Сделать это совсем не сложно, поскольку вы можете установить в MBR Linux Loader с ветвлением путей загрузки операционной системы. Вообще-то эта возможность присутствовала и в первых выпусках, но начиная с Volume 3 появилась приятная диалоговая оболочка помогающая решению этой проблемы. Итак, начнем.



Проверка целостности парольной системы


Очевидно, что как только информация, необходимя для регистрации в системе расползается по нескольким файлам возникает проблема ее синхронизации и проверки целостности всех данных в целом — ведь в противном случае в систему не сможет войти никто, даже сам системный администратор. Поэтому для проверки корректности информации в конфигурационных файлах Shadow Suite в состав пакета включены две программы: pwck и grpck.



Pwck


Прогграмма pwck предназначена для проверки целостности файлов /etc/passwd и /etc/shadow. В ее функции входит анализ каждого регистрационного имени на предмет следующего:

·

корректное количество полей в записях;

·

уникальность имени пользователя;

·

правильность пользовательского и группового идентификатора;

·

правильность основной группы;

·

правильность домашнего каталога;

·

наличие стартовой оболочки пользователя.

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

Рекомендуется сразу же запустить эту программу после начальной установки Shadow Suite. Кроме того, не поленитесь включить ее в планировщик заданий для еженедельного или ежемесячного прогона. Для этого вам достаточно использовать ключ -r и включить ее в список задач cron, а результат анализа будет вам отправлен системой по внутренней электронной почте.



Распаковка образов загрузочных дискет


После того, как Вы, наконец, выбрали подходящий boot диск, скопируйте  его на Ваш жесткий диск.  Например:

  C> copy e:\redhat\images\1213\bootNNN.gz

  где NNNN номер выбранного boot диска

  Затем скопируйте два ramdisk диска с CD-ROM: и ramdisk1.gz и ramdisk2.gz, которые одинаковы для любого из начальных загрузчиков.

  C> copy e:\redhat\images\ramdisk1.gz

  C> copy e:\redhat\images\ramdisk2.gz

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

  bootNNNN.gz

  ramdisk1.gz

  ramdisk2.gz

Теперь необходимо  распаковать каждый из этих файлов, используя  версию gunzip для DOS, которая находится на CD-ROM в каталоге \DOSUTILS:

C> E:\dosutils\bootNNNN.gz

  C> E:\dosutils\ramdisk1.gz

  C> E:\dosutils\ramdisk2.gz

Теперь осталось скопировать эти образы на дискеты. Для этого в том же каталоге вы найдете несколько версий программы посекторного копирования дискет rawrite. Версии функционально эквивалентны и отличаются только “поль­зо­ва­тель­ским интерфейсом”. К сожалению пакетной версии программы rawrite нет, поэтому вам придется вручную (без использования помощи Norton Commander) вводить имена файлов и диска, на который осуществляется запись.

Создайте образы дисков  на всех трех дискетах (один boot и два ramdisk) и не забудьте сделать наклейки на  дискеты, пока копируете дискеты.



Разгрузка операционной системы


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

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

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

Именно поэтому вам необходимо аккуратно и качественно организовать процесс разгрузки операционной системы. Для этой цели в Linux предусмотрена специальная программа /bin/shutdown. Давайте рассмотрим, как ее использовать?

Прежде всего отметим, что вызов этой программы осуществляется при вводе клавишной комбинации "из трех пальцев" —  Ctrl-Alt-Del. Поэтому изложенный ниже материал предназначен не для ежедневного использования, а для более глубокого понимания процесса разгрузки и разработки собственных механизмов.


Если вы являетесь единственным пользователем системы, то для выгрузки системы вы должны (во всяком случае, с точки зрения теории) остановить все текущие программы, закрыть виртуальные пользовательские консоли, зарегистрироваться в системе как  root (а если вы уже работаете как root, то во избежание неприятностей перейдите в каталог /root ), а затем ввведите команду

shutdown -q now

Кстати, вместо now вы можете указать интервал времени (в минутах) через который система осуществит окончательную разгрузку. Необходимо отметить, что в первоначальных версиях системы (диски Release 2 и Release 3) код команды shutdown содержит ошибку, в результате которой таймер не работает и разгрузка осуществляется мгновенно в любом случае, впрочем, если вы владеете UNIX-машиной в гордом одиночестве, задержка вам вряд ли понадобится. А вот если вы строите сервер или многопользовательскую систему - воспользуйтесь дисками Release 4 или более поздними, в которых эта ошибка исправлена.

Вообще говоря, в многопользовательской системе выдача команды shutdown обычно сопровождается кратким сообщением о причине, по которой завершается работа с системой. Впрочем, это можно и не делать, если вы не слишком уважаете своих пользователей. В конце концов, через определенные промежутки времени, shutdown все равно будет терроризировать пользователей сообщениями типа : "до взрыва осталось 8 минут".

Но какие конкретно операции должна выполнить команда shutdown? Ответ на этот вопрос хранится в файле /etc/shutdown.rc. В любом случае, вне зависимости от наличия этого скрипт-файла при начале разгрузки системы демонтируются все файловые системы (кроме root) все оставшиеся "в живых" пользовательские процессы безжалостно "убиваются" (поэтому и рекомендуется выходить до разгрузки системы!).  После того, как  все операции демонтирования успешно завершены, на консоль выдается соответствующее сообщение. Вот только после этого вы и можете нажимать клавишу Reset  или выключатель питания.



Если же вы хотите перегрузить компьютер, то можете воспользоваться командой reboot, которая аналогична команде shutdown, но не останавливает систему после завершения разгрузки, а автоматически начинает перезагрузку операционной системы.

Иногда, как это ни прискорбно, система не хочет корректно разгружаться. Например, в том случае, если система запаниковала (panic mode) и пошла в разнос. Вы должны отдавать себе отчет, что любое нажатие клавиши может привести к непредсказуемым и непоправимым последствиям, а поэтому лучше закрыть глаза и тихонько нажать на клавишу Reset. Во всяком случае, у вас остается надежда, что программа fsck при повторной загрузке исправит (или попытается это сделать) ошибки на диске. Если же повреждения оказались менее серьезными (в SAG под этим подразумевается несколько ударов топором по клавиатуре), то имеет сысл использовать команду update для того, чтобы снести содержимое буферов на диск, и только после этого выключать питание.

Среди части системных программистов пользуется популярностью некое сложное заклинание, состоящее из трех команд sync, между которыми следует дождаться мигания светодиода доступа к винту, и лишь после этого считается позволительным выключать питание машины. Если в этот момент у вас нет никаких активных программ, то этот процесс, вообще-то, полностью эквивалентен команде shutdown. Но, поскольку вы не размонтировали файловые системы, то флажок clean filesystem для наиболее распространенной системы ext2fs сброшен не будет, что приведет к недовольному ворчанию fsck при повторном запуске программы.

Поэтому пользоваться подобными "открытиями" не стоит.

В то же время не стоит огульно охаивать опыт минувших поколений. Метод трех sync-ов ведет свое начало с тех времен, когда солнце светило ярче, а машины работали не так быстро. Поэтому промежуток между выполнениями трех раздельно введенных команд был вполне достаточным, чтобы успели выполниться все операции ввода/вывода с дисков.


Регистрация в системе


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

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

uugetty - стандартная программа регистрации на консоли (виртуальной линии);

uugetty_ps - программа, позволяющая зарегистрироваться, подключившись к последовательному порту через нуль-модем или (как бы его получше назвать) не-нуль-модем;

mgetty - программа регистрации, распознающая приходящие факсы.

Любая из этих программ выдает на ваш терминал подсказку

login:

ведущую свое происхождение от двух слов LOG IN (один из переводов —  "шлагбаум на вьезде"). В ответ на подсказку вы должны ввести свой идентификатор, и, если это потребутся, пароль. В случае, если идентификатор пользователя и пароль присутствуют в файле /etc/passwd вы будете допущены в систему.

Если программа getty обнаружит файл /etc/nologin (совершенно неважно, что в нем находится) то регистрация в системе будет запрещена! Создается этот файл обычно программой shutdown или ее аналогами. Смысл мероприятия довольно прозрачен - не допустить внесения изменений в систему после завершения разгрузки. При запуске системы это файл должен автоматически ликвидироваться и проблем у вас возникать не должно. За исключением того случая, когда вы вручную создадите этот файл во время работы. Так что будьте бдительны!



в октябре 1994 года появился


А месяц спустя, в октябре 1994 года появился и выпуск Release 4.  Следуя традиции, этот выпуск также содержит "живую систему", набор  образов для загрузки системы, три набора дистрибутивов Linux и систему  FreeBSD. Кроме того, в отдельный каталог выделено все, что относится к  InterView - огромный оконный диспетчер и куча библиотек, работающий в  среде X-window.

 И конечно, на диске довольно много "бонусов". Во-первых в каталоге

 EXTRAS вы обнаружите следующее:

 CALC2.9 - новое слово в калькуляторах. По возможностям эту программку  можно сравнивать с программируемыми калькуляторами Sharp или Citizen,  которые работают на языке Basic. Все поставляется с исходными текстами  и отличной документацией.

IRSIM - довольно популярное средство имитации переходных процессов в p- и nMop схемах.

JAZZ-1.0 -  а вот такого продукта в DOS или Windows вы еще не встречали. Это программа редактирования MIDI-файлов, позволяющая вводить дополнительные эффекты, переносить фрагменты из одного файла в другой, смешивать различные источники данных и так далее и тому подобное. Конечно же, поддерживается и работа с инструментами.

SAMBA - это маленький сервер, который может работать как через сервер серверов inetd, так и как обычный демон. Название продукта происходит отаббревиатуры SMB (Session Message Block), а предназначен SMB-протокол ни много ни мало, как для создания гетерогенных DOS-UNIX сетей. В результате вы получаете возможность объединить в единую сеть Linux и Windows-машины, и при этом без проблем использовать общее дисковое пространство и принтеры. Кстати, последнее может оказаться весьма полезным. Ведь в Linux довольно много средств, ориентированных на работу с Postscript-файлами, и более того, Postscript - это стандарт для вывода информации. Поэтому программ, преобразующих Postscript в команды управления матричными и лазерными принтерами хватает. А отсюда до создания принт-сервера на базе Linux - только один шаг!

FIPS.DOC, FIPS.EXE - эта скромная программуля в каталоге \extras предназначена для DOS, но без сомнения, ее можно было бы поставлять на компакте в гордом одиночестве. Это единственная на сегодняшний день программа неразрушающего перепланирования Partitition table на жестком диске! Комментарии, как говорится, излишни.



Но "бонусы" этим не исчерпываются. Есть еще два каталога, в которых вы найдете приятные сюрпризы. Первый из них, это \SLACKWAR\CONTRIB, в котором вы обнаружите следующее:

ANDREW-D - с пакетом Andrew вы уже встречались, а сцффикс D означает, по всей видимости, Development. В этом каталоге скрывается так называемый AUIS - Andrew User Interface System, набор средств, предназначенных для создания мультимелдийных документов и приложений (в Andrew под мультимедийным документом понимается форматированный текст со звуком и картинками/мультиками);

GCC-2.6 - новая версия компиляторов Си: чистый Си, Си++ и Objective C;

GNAT-1.82 - вот для этого то пакета и нужны новые компиляторы Си. Это полноценный транслятор с языка Ада, о котором у нас столько писали, но которого никто никогда не видел. Между тем, этот язык ориентирован, во-первых, на многозадачные многопроцессные приложения, а во-вторых, предполагает, что программы бывают большими и сложными или очень большимии очень сложными. И что пишут программные комплексы не одиночки, а коллективы. Так что дерзайте!

LINUX-X- - а это так, мелочевка... В этом каталоге любители стрельбы на экране найдут версию DOOM I for X-Window. Ну что, не кисло? При желании вы можете поставить и уровни от версии DOOM II, разработчики утверждают, что все будет работать. Единственное ограничение - процессор. На 80386-DX40, 8 МБ программа живет внутренней жизнью и на отработку клавиатуры у X-сервера руки просто не доходят.

Теперь давайте обратимся к каталогу SLACKWAR.000. Здесь вы обнаружите два грибных места: .\CONTRIB и \EXTRA-ST. Начнем с первого из них.

FREE-WID - набор виджетов для X-Window;

GNU-COMM - Gnu Common LISP;

GNU-GCC- 6  - еще один набор архивов GNU C 2.6;

GNU-GNAT - а здесь тоже находится тетушка Ада. Но уже две версии, соответствующие спецификациям АДА-79 и АДА-82;

GNU-GPC - полная версия Gnu Pascal Compiler;

IRCII - Это клиентская программа для работы со службой Internet Relay Chat. Особенность программы в том, что она позволяет, при наличии звуковой платы, переходить от топтания по кнопкам к голосовой связи и обратно;



MBASE - MetalBase 5.0 и 5.1. Это СУБД с возможностью работы как через диалоговую оболочку, выглядящую вполне прилично (ncurses), так и из программ на языке Си. Существуют версии этой СУБД и для DOS, и для Sun, и для Next, но первоначально она разрабатывалась для Amiga 500.

MC - MouseLess Commander. Очень рекомендуется! Установив эту программу, вы снова вернетесь в годы молодости и увидите на экране привычные панели Norton Commander.

SAMBA - новая версия клиента и сервера SMB.

SEEJPEG - программа визуализации графических файлов JPEG, GIF, PPM и TARGA. Позволяет демонстрировать слайд-фильмы.

SMAIL - SendMail 3.1.

Во втором "бонусном" каталоге \EXTRA-ST   вы обнаружите следующее:

APPLE-II - программа эмуляции Apple-II. Возможно и программы для отечественной разработки - "Агата" также будут работать без особых проблем;

BSD-SEND - версия SendMail, конвертированная из системы BSD;

CPM-80-E - эмулятор процессора Z80 и операционной системы CP/M. При эмуляции отрабатываются все вызовы BDOS.

DOS-EMUL - очередная версия эмулятора MS-DOS;

GNU  - набор различных утилит, разработанных в рамках проекта GNU;

GNU-FING 37 - finger 1.37, программа для поиска пользователей в сети Internet;

IBCS2-EM  - новая версия программы IBCS2, позволяющая запускать в Linux программы, скомпилированные под SCO Unix или SVR4. Соответствующие статические библиотеки пристутствуют в комплекте поставки.

MMDF - Mail Delivery Agent, демон для автоматизации работы с отправкой

приемом почты.


Системное управление принтером


В операционной систме UNIX, которая изначально разрабатывалась как средство для подготовки текстовой документации, управление принтером носит поистине “системный” характер. Прежде всего, любой процесс вывода на печать под управлением системы использует единый механизм, вне зависимости от количества и системы команд управления принтеров.  Для решения всех проблем печати используется несколько небольших программ:

·

lpd — демон печати, осуществляющий вывод данных из каталога спулинга на устройство печати в соответствии с настройками конфигурационного файла /etc/printcap;

·

lprm — программа удаления заданий на печать из очереди по их номеру;

·

lpq — программа просмотра содержимого очереди на печать;

·

lpc — диалоговая программа управления состоянием принтера и очереди заданий на печать;

·

lpr — программа постановки заданий в очередь на печать.

Впрочем, давайте рассмотрим процесс печати по порядку...

На рисунке приведена общая схема организации процесса печати в UNIX-системах вообще, и в Linux, в частности. Прежде всего, с помощью программы lpr файл (или поток с устройства стандартного вывода) помещается в очередь заданий. Очередь заданий представляет собой обычный каталог, который имеет название типа /var/spool/lp/lp1[15]. Программа lpd периодически просматривает содержимое очереди и в случае, если находит задание, пытается его напечатать. Осуществляется это следующим образом:

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



Системные средства обеспечения безопасности системы


Ах, сколько раз мне доводилось слышать о том, что в UNIX никакой серьезной защиты нет, что “систему ломают хакеры”, что... Однако, как правило, все эти заявления исходят от счастливых владельцев DOS и Windows, которые никогда с проблемами взлома не сталкивались, поскольку никаких средств защиты в этих системах нет. Но отчасти, конечно же упрек справедлив. И дело здесь не в слабости того или иного решения. Просто в UNIX-системах зачастую хранятся данные, за доступ к которым злоумышленники или конкуренты готовы платить немалые деньги, а стало быть за взлом берутся не “кустари-одиночки”, а профессионалы. И хотя в России пока об этом говорить рано, совсем не грех с самого начала предпринять ряд мер по воспитанию пользователей системы и предотвращению использования ее в качестве учебной площадки для “вундеркиндов”, или тем паче, как промежуточного звена при атаке большой сети.

Поэтому в этой главе мы рассмотрим два основных направления повышения сопротивляемости Linux-сервера, используемого в многопользовательском режиме:

·

усиление средств парольной защиты;

·

использование систем контроля целостности систем защиты и поиск уязвимых мест.

В первой части мы рассмотрим механизм использования “теневых паролей” Shadow Suite, и программы принудительного генерирования “хороших паролей” npasswd, которые трудно подобрать злоумышленнику, а во второй рассмотрим две системы анализа устойчивости системы к проникновению —  Crack и широко разрекламированную Satan.



Создаем разделы на диске


Установите в привод CD-ROM диск TAE Volume 2 (или более поздней версии) и создайте дискеты с помощью программы Install. В некоторых случаях диски, создаваемые с помощью программы Install, упорно не желают загружаться на вашей машине. Это не дефект компьютера, а ошибки разработчиков программы установки. Но это ошибка не смертельная. На каждом диске есть специальный каталог BOOT, в котором помещены версии загрузочных (boot) и корневых (root) дисков для различных вариантов конфигурации системы. Там же вы сможете найти и программу посекторного копирования rawrite, которая позволит сформировать образ на дискете.

Но вернемся к процессу установки. Поместив в привод дискету boot смело жмите клавишу Reset. Если процесс загрузки прекратится через несколько секунд, значит вы не угадали, какое ядро системы соответствует вашей конфигурации. В противном случае на экран будут выведены диагностические сообщения, а затем вы получите сообщение, приглашающее вас установить диск root. Еще немного поворчит дисковод и перед вами появится подсказка программы привратника:

darkstar login:

введите в ответ root и нажмите <Enter>. Теперь вы хозяин системы и вольны распоряжаться ею. Но прежде необходимо поставить Linux на винчестер. А поэтому запускайте программу fdisk.

fdisk <идентификатор диска>

Обозначения дисков в Unix естественно отличаются от MS-DOS. Так, первый винчестер, подключенный к контроллеру IDE, обозначается как /dev/hda, второй - /dev/hdb, а винчестеры, подключенные к интерфейсу SCSI - как /dev/sda, /dev/sdb и так далее. Но предположим, у вас только один винчестер, подключенный к контроллеру IDE. Поэтому вы подаете системе команду:

fdisk /dev/hda

и программа fdisk выдаст подсказку. Польщоваться fdisk в Unix проще, чем в DOS. Команда m позволит вам получить список команд, а p —  распечатать текущее состояние таблицы разделов. Ваша задача —  создать два новых раздела - для файлов системы Linux (Native Linux - тип 83) и для подкачки (Linux swap- тип 82).

Кстати о подкачке. Если в вашей системе больше 16 МБайт оперативной памяти —  раздел подкачки вам не нужен. А если меньше, не жмитесь! Но и не жадничайте. Размер раздела подкачки В старых версиях Linux не мог превышать 16 Мбайт, а сегодня вы можете устанавливать хоть 128 МБайт. А можете и создавать специальный файл для подкачки на время выполнения программы и освобождать пространство на диске после ее завершения!


Да, надо отметить одну особенность программы fdisk. При создании раздела вам будет предложено указать первый цилиндр раздела, а затем размер, выделяемый разделу. Чтобы выделить, скажем 80 МБайт, на запрос системы о последнем цилиндре раздела введите +80M (если введете +80 - получите 80 Байт!).

Перед выходом из программы еще раз посмотрите на таблицу. И если результаты вас устраивают жмите клавишу w. Если же нет, можете выйти без записи результатов (команда - q) и еще раз попытать счастье.

Запомните обозначения разделов, которые используются для MS-DOS и Linux. Они нам вскоре понадобятся.

Ох, первый нужен уже сейчас. Вы скорее всего, не настолько богаты, чтобы бросаться оперативной памятью, и создали специальный раздел подкачки. Теперь необходимо поставить об этом в известность операционную систему. Предположим, что под подкачку выделен раздел /dev/hda4 размером 8192 блока (1 блок = 1 КБайт - и никаких тебе кластеров!).

Поэтому введите следующую команду:

mkswap -c /dev/hda4 8192

В результате раздел будет размечен для подкачки. Опция -c нужна только для старых винчестеров - при разметке будет проведена проверка на предмет наличия плохих блоков и, в случае обнаружения оные блоки будут огорожены красными флажками. Поэтому сообщения об ошибках можно игнорировать. На последующую работу системы они не повлияют.  Теперь необходимо разрешить системе использовать раздел подкачки. Для этого вы подаете команду:

swapon /dev/hda4

Все. Объем оперативной памяти вашей системы увеличился на 8192 КБайта.

Если вы создали несколько разделов подкачки, повторите эту процедуру для каждого из них.

Теперь можно продолжать, но позвольте еще одно небольшое отступление. Unix очень похож на исполнительного солдата, который делает только то, что ему приказывают. Но с другой стороны, не надо ничего повторять два раза. Это означает, что созданный и инициированный однажды раздел подкачки будет "подкачивать", до тех пор пока вы не подадите команду swapoff. А описываемая ниже процедура установки предложит вам еще раз отформатировать и установить раздел подкачки. Так вот этого делать не надо! Категорически не надо!



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

Поэтому, после запуска программы setup необходимо отказаться от предложения выполнить команду mkswap, но не стоит возражать против включения swapon в сценарий загрузки. В противном случае вам придется самостоятельно выполнять эту команду при каждом запуске системы.

Теперь необходимо установить источник, откуда будет осуществляться загрузка системы на винчестер. Конечно, с оптического диска! Затем уточните тип привода, на этом этапе система поддерживает все перечисленные в списке и переходим к следующему пункту.

А следующим пунктом мы должны определить, куда устанавливать Linux и какие разделы винчестера мы будем использовать. Вот еще один повод вспомнить состояние таблицы разделов. Предположим, что у нас имеется два раздела MS-DOS: /dev/hda1 и /dev/hda2, а также раздел типа Linux native - /dev/hda3. Давайте ка включим их в систему.

Вначале программа setup попросит указать, какой раздел использовать для файлов Linux. Без вариантов - раздел /dev/hda3. После этого вам предложат выбрать тип файловой системы. Не вчитывайтесь в различные мудрстовавния, а выбирайте ext2fs. Как сказало бы покойное АО "МММ" - "Это лучше, Леня!" После этого спокойно соглашайтесь на форматирование раздела, не стоит возражать и против проверки на наличие плохих блоков.

После завершения форматирования вам предложат включить в состав файловой системы разделы DOS. Не стоит отказываться, подключите хотя бы один из разделов. Тогда вы сможете передавать файлы в DOS и обратно путем простой команды cp (аналог copy из MS-DOS). Единственный тонкий момент —  выбор точки монтирования. Под этим в Unix понимается название каталога, который ставится в соответствие с тем или иным дисковым устройством. Так вот, к моменту запроса системы на подключение разделов винчестера у вас на диске есть только один корневой каталог, обозначаемый как "/".

Следовательно ваши каталоги, связывающие Unix с DOS должны быть потомками основного каталога, например /dos-c для /dev/hda1 или /dos.d для /dev/hda2. Но я бы советовал Вам подключить в Linux только второй раздел, не содержащий самой DOS - все-таки береженого Бог бережет!

Теперь, при желании, Вы можете распечатать каталог файлов DOS, находящиеся в каталоге D:\F117, с помощью команды: dir /dos.d/* . А вот при обратном копировании нужно помнить что длина имени файлов в MS-DOS ограничена восемью символами, а расширение - не длиннее трех. Но об этом мы поговорим позже, а сейчас продолжим установку.


Структуры данных


Библиотека libshadow.a опирается на структуру spwd в которой размещается вся информация извлекаемая из файла /etc/shadow. Ниже приведено определение этой структуры.

 struct spwd

  {

    char *sp_namp;          /* регистрационное имя */

    char *sp_pwdp;          /* зашифрованный пароль */

    sptime sp_lstchg;       /* дата последнего изменения */

    sptime sp_min;          /*  минимальный срок между изменениями */

    sptime sp_max;          /* максимальный срок между изменениями */

    sptime sp_warn;         /* срок начала предупреждения */

    sptime sp_inact;        /* срок блокировки счета после истечения пароля */

    sptime sp_expire;       /* количество дней с 1/1/70 до конца службы пароля   */

    unsigned long sp_flag;  /* зарезервировано для следующих версий */

  };

Shadow Suite позволяет передавать в поле sp_pwdp не только зашифрованный пароль. Предположим, например, что запись о пользователе имеет следующий вид: 

       username:Npge08pfz4wuk;@/sbin/extra:9479:0:10000::::

Это означает, что для дальнейшей аутентификации пользователя должна быть запущена программа /sbin/extra. Этой программе будет передано имя пользователя и ключ, поясняющий причину ее запуска[10]. Для нас это означает, что нам придется использовать функцию pwauth для выполнения собственно аутентификации. Пример, приведенный ниже проиллюстрирует этот подход.



Supplement


Следующий диск - Release 3 был выпущен небольшим тиражом, поскольку на подходе уже была следующая версия Release 4. И поскольку нашим читателям добыть этот диск не удастся, мы позволим себе опустить рассказ о нем. Но! В дополнение к Release 3 в июле 1994 года появился Supplement, который содержит много интересных вещей.

ARCHIVES  - содержит несколько архивных файлов с различными утилитами, но самое важное - это полный дистрибутив Andrew 6.1 со всей документацией. И вновь вынужден обещать читателям рассказать об этом продукте отдельно, а пока могу сказать, что упакованные архивы занимают 19 МБайт. Кроме того, в этом архиве вы найдете заплатки к альфа-версии эмулятора MS Windows 3.1 в среде X-Window.

BOOT - как и в прошлый раз, содержит несколько минмиальных систем, поддерживающих различные типы приводов.

DEBIAN - строго говоря, Linux является достоянием всео человечества, а поэтому существует несколько различных дистрибутивов системы. Debian — один из вариантов, причем не самый худший.

DOCS - вот с этого каталога и имеет смысл начинать. Здесь содержится порядка 25 файлов с рекомендациями, как решить ту или иную проблему. Например, как подключить стример или сетевой адаптер, будет ли Linux работать на компьютере с шиной PCI и так далее.

EXTRA - самые любопытные вещи. Вот что лежит в этом каталоге:

BOGO-1.2  - программа оценки реальной производительности вашего компьютера. Измеряет не в традиционных "попугаях" а в BogoMIPS, на которые вы найдете ссылки в огромном количестве литературы.

EBBS - полноценная BBS на Linux. Среди прочих возможностей поддерживает Zmodem (да и кто сейчас работает с  другими протоколами) и режим IRC (Internet Relay Chat).

EFAX - отличная программ для работы с факсмодемами. И все это в XWindows. Из аналогов на ум приходит только Delrina WinFax Pro.

IMAGEMAG - ImageMagic, программа для просмотра и преобразования форматов графических изображений. Поддерживает более двадцати форматов, используемых на PC, Macintosh и Sun.

IMAZE  - игра для XWindows на тему блуждания в лабиринтах. В духе Wolfenstein, но рассчитана на многомашинную сеть. На одиночной машине я ее запустить, к сожалению, не смог. Судя по всему необходимо запускать вначале сервер, а уже потом сажать клиентов


LINUXDOC.1 - к сожалению,  это не полный комплект документации (есть такой международный проект - Linux Documentation Project - LDP). Это конвертер документов, позволяющий преобразовывать текстовые документы во входные файлы различных потоковых форматтеров, таких, как например, groff или tex. Заслуживают упоминания и такие форматы как HTML  и SGML.

PLAN  - планировщик для X-Window. Конечно, ему далеко по изяществу до Lotus Organizer, но ведь не все сразу! К тому же поставляется с исходным текстом

RIP - поддержка специализированного протокола передачи графических изображений. Программа предназначена для операторов BBS, желающих предоставить клиентам графический интерфейс. Довольно эффективная штучка- чертеж "Колумбии", знакомый всем, кто хоть раз видел Автокад, занимает всего 8 килобайт.

WINE9606 - А это сам эмулятор MS Windows, по состоянию разработки на июнь 1994 года. Конечно, работает в этой версии далеко не все, поскольку реализовано только 30% всех функций API. Но в солитер играть уже можно!

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

XDOS0.4A - как и следует из названия, эмулятор DOS, но только для X-Window. Поддержка национальных шрифтов (хоть китайский!) и имитация XMS-памяти.

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

LEMACS-1.10 - Lucid GNU Enacs. Полный комплект средств для работы в популярном редакторе EMACS. Как и старый добрый Multi-Edit, EMACS состоит из небольшого ядра и большого количества функций-макрорасширений. Причем некоторые из них, как например, программа просмотра новостей, поступивших по электронной почте, явно выходят за привычные представления о функциях текстового процессора. К сожалению, русский язык EMACS пока не понимает.



MIT  - здесь вы найдете средства для запуска двоичных модулей, ориентированных на SCO UNIX. Автор предупреждает, что работать будет пока не все.

MOTIF - да, это хорошо известная библиотека Motif, предназначенная для разработки программ в среде X-Window. Но, поскольку это коммерческий продукт, хранится он на диске в зашифрованном виде. Для получения ключа необходимо перечислить денежку разработчику, после чего вам будет сообщен ключ. Дабы пресечь вопросы ряда читателей, отвечу сразу - я этого ключа не знаю!

RR_MOVED -  более двух десятков драйверов для различных типов видеокарт. С точки зрения здравого смысла имеет смысл скомпилировать X-сервер с драйвером, соответствующим вашему типу адаптера. Но сколько времени займет эта процедура, трудно даже предсказать. Я как то оставил компьютер на ночь (386 DX-40, 8 МБ), но и этого ему, бедняге, не хватило. Впрочем, благодаря заботам программы make, вы можете компилировать новый сервер постепенно. А чтобы не тратить время впустую - установите этому процессу приоритет nice. И машина автоматически будет заниматься делом, пока вы ушли на обед или пьете чай.

SECURITY - в этом каталоге вы найдете несколько утилит удаленного доступа серии R* (rlogin, rshell и т.д.), которые адаптированы к особенностям Linux и обслуживают различные категории пользователей без нарушения прав доступа.

SLS, SLACKWAR 111, SLACKWAR 122

- очередные версии дистрибутива системы.

USR, LIB - "живая" система.

WORDS - это и в самом деле "слова". В каталоге находится несколько файлов, содержащих наиболее употребительные слова основных европейских языков. Назначение каталога очевидно, в UNIX существует несколько программ орфографической проверки, некоторые из которых входят в дистрибутив Linux.

XC - исходные тексты системы X-Window Release 6. И это при том, что до сих пор большинство UNIX-систем работают только с Release 4, а современные X-терминалы выпускаются с сервером Release 5. Да, уж в недостатке оперативности TAE обвинить никак нельзя!


 “Теневые пароли”


Как мы уже рассмотрели выше, традиционная схема парольной защиты в UNIX имеет ряд уязвимых мест. И хотя взломать парольный файл совсем не просто, имеет смысл использовать ряд относительно простых средств, которые снижают вероятность проникновения в систему. Один из путей состоит в использовании механизма “теневых паролей” (shadow passwords), при котором парольный файл /etc/passwd более не содержит самих паролей, пусть даже и зашифрованных, но доступных всем желающим. Набор программных средств, реализующих подобную схему защиты получил название Shadow Suite.

Изначально дистрибутивы Linux не включают процедур установки Shadow Suite. Это относится к таким распространенным версиям, как Slackware 2.3, Slackware 3.0 и многим другим. Одна из причин такого подхода состоит в том, что изначально Shadow Suite не распространялась беслпатно, как Linux, и не могла быть включена в дистрибутивы. Сегодня ситуация изменилась, и разработчик версии Suite для Linux Marek Michalkiewicz  <marekm@i17linuxb.ists.pwr.wroc.pl> утверждает, что в следующих версиях дистрибутивов ShadowsSuite будет устанавливаться по умолчанию. Пока же вам придется поработать руками и головой самостоятельно.

При установке парольной системы Shadow вы должны прежде всего зарегистрироваться под идентификатором root. Кроме того, поскольку выбудете вносить ряд серьезных изменений в системное программное обеспечение, настоятельно рекомендуется для всех рассматриваемых  ниже программ приготовить резервные копии.

Уже сегодня вы можете воспользоваться дистрибутивом Shadow Suite, который помещается в виде отдельного пакета на многих компакт-дисках. При этом часть программного обеспечения, как показывает практика, может быть уже установлена, поскольку входит в состав других пакетов.

Но давайте рассмотрим, что же нового в проблему защиты Linux-системы вносит появление Shadow Suite. Прежде всего, пакет осуществляет перемещение критической информации — пользовательских паролей в другой файл (обычно это /etc/shadow). Этому файлу назначается в максимальной степени ограниченный доступ — его может читать и писать только системный администратор. Программам регистрации в ряде случаев нет нужды в изменении файла паролей, а только необходимо проверить правильность пароля, введенного пользователем. Поэтому такие программы могут либо запускать временный иднтификатор root (с помощью suid), или же вы можете создать специальную группу пользователей, которой разрешено только чтение файла /etc/shadow. В этом случае вы сможете ограничить права верификатора присвоением ему группы shadow (с помощью вызова sgid).

С помощью такой несложной операции мы обеспечим эффективное блокирование доступа злоумышленника к зашифрованным парольным файлам, и, таким образом, предотвратим угрозу “атаки со словарем”. Кроме того, Shadow Suite обладает еще несколькими привлекательными возможностями:

·

Конфигурационный файл, позволяющий установить настройки программы регистрации (/etc/login.defs);

·  Утилиты для добавления, модификации и удаления пользовательских счетов и групп;

·  Контроль старения и ликвидации паролей;

·  Блокирование пользовательских счетов;

·  Теневые пароли для пользовательских групп;

·  Пароли двойной длины (16 символов) — НЕ РЕКОМЕНДУЕТСЯ!

·

Более тщательный контроль за качеством выбора паролей, который осуществляется каждым пользователем самостоятельно;

·  Пароли для входящих соединений;

·  Дополнительные программы аутентификации — НЕ РЕКОМЕНДУЕТСЯ!.



Тонкость N1 - X-сервер


При установке ядра системы вам будет предложено установить один из семи уже скомпилированных серверов:

8514a - предназначен для платы адаптера IBM 8514a и носит, прямо скажем, абстрактный характер. Во-первых, эти видеоплаты в России встречаются исключительно редко. А во-вторых, адаптер реализован для шины MCA (мне по крайней мере, другие варианты не попадались), которая не поддерживается самой системой Linux.

Monochrome X server - ориентирован на использование VGA-адаптера с монохромным монитором. Но имейте в виду, никаких градаций яркости! Этот сервер признает всего два цвета - черный и белый. Но зато отображает данные максимально быстро.

SVGA server - вот он пожалуй, будет использоваться чаще всего, ведь SVGA-платы получают все большее распространение. Но необходимо отметить, что меньше всего проблем у вас возникнет с платой Trident 8900 (буквы роли не играют). А вот плата Trident 9000 имеет ряд дефектов, которые порой приводят к "рассыпанию" изображения на экране или зависанию компьютера. Поэтому будьте бдительны! SVGA-сервер поддерживает режим 256 цветов (разрешение пределяется возможностями монитора и объемом видеопамяти на плате).

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

Используйте его только в самом крайнем случае. Результаты, вообще говоря, непредсказуемы.

Оставшиеся три сервера ориентированы на использование наиболее популярных плат с ускорителями класса Windows Accelerator. Поскольку интерфейс пользователя в X-Windows также построен на основе прямоугольников (так же как и MS Windows), использование этих плат позволяет достичь значительного выигрыша в производительности.

Выбирайте для установки только один сервер, тот который соответствует вашему видеоадаптеру. Тратить место на диске на остальные смысла не имеет. Кроме того, процедура установки автоматически перенастроит указатели (символьные связи) на последний установленный сервер (а последним в списке является как раз не до конца отлаженный VGA-сервер).



Тонкость N2 - конфигурирование системы.


После того, как вы запустите XWindows, вы с удивлением обнаружите, что скорость вывода графики в полтора-два раза выше, чем в MS Windows. Но чтобы добиться столь впечатляющих результатов, вам придется немного попотеть. Дело в том, что сервер сам по себе предназначен для обслуживания семейства

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

Эти настройки размещаются в файле Xconfig, который должен находиться в каталоге /usr/X11/lib/X11. Типовой файл, ориентированный на видеоплату Trident 8900 содержится в этом же каталоге в файле Xconfig.Trident8900c.

Достаточно просто выполнить команду:

mv Xconfig.Trident8900c Xconfig

и вся ваша настройка (если конечно, у вас плата Trident 8900) на этом закончена. В этом случае можно считать, что вам крупно повезло.

Но рассмотрим менее приятный случай - у вас другой тип видеоадаптера. Ваша задача состоит в том, чтобы определить видеорежимы, которые будет поддерживать X-window и, что самое важное, задать корректные режимы, которые поддерживаются как видеоадаптером, так и монитором.

Но вначале давайте рассмотрим, что же представляет из себя файл Xconfig. Вот пример типичного файла:

RGBPath         "/usr/X386/lib/X11/rgb"

FontPath        "/usr/lib/X11/fonts/75dpi/,/usr/lib/X11/fonts/Speedo/"

Keyboard

  AutoRepeat 500 5

  ServerNumLock

LeftAlt  Meta

RightAlt Compose

ScrollLock ModeLock

Microsoft "/dev/mouse"

  BaudRate 1200

vga256

  Virtual 1024 1024

  ViewPort      0 0

  Modes         "800x600" "640x480" "1024x768i"

  Chipset "tvga8900c"

Displaysize     800 600

Clocks 25.30 28.32 45.00 36.00 57.30 65.10 50.40 39.90

ModeDB

# name      clock  horizontal timing     vertical timing      flags

"640x480"   25     640  672  768  800    480  490  492  525

"800x600"   36     800  840  912  1024   600  600  602  625

"1024x768i" 45     1024 1048 1224 1264   768  768  776  816   Interlace


Давайте начнем по порядку. Первые строки, вплоть до описания конфигурации мышки, вам скорее всего изменять не придется. Как пути, так и настройки клавиатуры выглядят вполне приемлемо. Более того, они даже не вступают в конфликт с русификатором! что касается мышки, то настройка манипулятора, вообще говоря, осуществляется программой setup, а в Xconfig вы, как правило, только указываете ее тип - в нашем, и наиболее распространенном случае, Microsoft.

Кстати, если вы используете мышку типа PS/2, как например, на машинах фирмы Acer, не забудьте включить ее поддержку при компиляции ядра Linux. Иначе толку никакого не будет. Более подробную информацию о конфигурировании "мышек" вы можете получить из встроенной системы помощи:

man Xconfig

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

Virtual 1024 1024

Это виртуальный размер экрана. Если вы работали с пакетами Word for Windows или холтя бы рисовали картинки каким-либо графическим редактором, то понятие виртуального экрана вам знакомо. Числа обозначают разрешение, которое определяется объемом видеопамяти. Для видеоплаты Trident 8900 одного мегабайта достаточно как раз для хранения образа экрана 1024*1024. Платы с ускорителями расходуют память куда более агрессивно, а поэтому, если вы рассчитываете на действительно выдающиеся результаты, подумайте над расширением видеопамяти плат класса S3 хотя бы до 2 МБайт.

ViewPort 0 0

Начальное смещение рабочего окна относительно левого верхнего угла виртуального экрана. Оставляйте как есть.

Modes

В этой строке вы просто перечисляете видеорежимы, которые будет использовать ваш X-сервер. Конечно, инициализируется только один из них, но вот какой? Да самый первый в списке. А следующая строка:

DisplaySize 800 600

означает, что X-сервер инициализирует (вне зависимости от текущего разрешения) адресуемую область экрана 800 на 600.



Chipset

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

А вот следующая строка выглядит жутковато. Цифры, на первый взгляд, совершенно непонятные. Означают они настройки временных параметров видеоадаптера и изменяются от платы к плате. Но, несмотря на непонятность, получить эти "тайные знаки" можно относительно просто. Для этого вы должны "обрезать" Xconfig по строку Clocks (ликвидировав последнюю) и запустить следующую команду:

X -probeonly

Система просмотрит все диапазоны возможных значений настроек таймеров видеоадаптеров и выдаст на экран список чисел, которые вы должны в том же порядке перенести в файл Xconfig. Не беда, если они займут несколько строк. А кроме того, обратите внимание на максимальную пропускную полосу монитора. На хороших моделях она достигает 90 MHz. Это абстрактное значение имеет для нас очень важное значение. Но позвольте вначале некбольшое лирическое отступление.

Хочу сразу же предупредить, что изложенное ниже представляет собой мои досужие домыслы и не может восприниматься как антиреклама "пострадавших" фирм.

Вы смотрите телевизор? Не задавались ли вы вопросом, почему иногда изоб ражение на дисплее, который вы видите на телевизионном экране стоит как влитое, а иногда по нему бегут какие-то полосы? И почему изображение на экране стоит столь редко?

Да, я слышал о популярных вариантах ответа. Но позвольте предложить вам свое решение. Во-первых, вспомните школьный курс физики, а именно —  фигуры Лиссажу. То что мы видим на экране, это тоже разновидность биений, возникающая в тех случаях, когда кадровая развертка монитора компьютера близка или сопоставима к кадровой развертке видеокамеры. Так вот, пусть глаз не замечает смены кадров на мониторе, видеокамера безжалостно демонстрирует нам низкую

частоту развертки вашего компьютера. Кстати, почему экраны рабочих станций Sun или DEC получаются на ТВ вполне прилично? Да потому, что в этих мониторах частота смены кадров выше 70 Гц, в то время как видеокамера делает около 30 кадров в секунду!



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

Что из этого следует? А вот что! Увеличение частоты кадровой развертки при сохранении заданного разрешения способствует:

а) максимально полному использованию возможностей ваших аппаратных средств;

б) повышает стабильность изображения на экране.

К счастью X-windows предоставляет вам уникальные возможности в оптимизации настроек аппаратных средств. А для этого нам потребуется настроить параметры видеорежимов.

Но сказать легче, чем сделать. Вначале необходимо попробовать пойти режимом минимального сопротивления. Обратите ваше внимание на каталог /usr/X11/lib/X11/etc. И прежде всего - на файл modeDB.txt. А посмотреть его содержимое можно командой:

cat modeDB.txt | less

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

Этот файл представляет собой базу данных, составленную любителями Linux со всего мира, и состоит из записей следующего вида:

# Monitor:              Seiko CM 1440

# Contributor:          Jeff Jennings [jennings@stortek.com]

# Last Edit Date:       12/9/91

#

# name         clock  horizontal timing     vertical timing      flags

 "1024x768i"    45    1024 1064 1224 1264    768  777  785  817  Interlace

 "1152x900i"    45    1152 1184 1288 1360    900  898  929  939  Interlace

Ваша задача состоит в том, чтобы заменить содержимое строк описания режимов в файле Xconfig на найденные вами в таблице значения. Но позвольте вам еще раз напомнить - тип монитора играет очень важную роль!

Вообще говоря, не стоит проявлять излишней самодеятельности. Взгляните на таблицу 4, в которой перечислены общие режимы, которые поддерживают почти все мониторы. Но не поленитесь, откройте книжечку, поставляемую вместе с вашим. Возможны два варианта. Если вы не экономили, то у вас окажется монитор класса Multisync, поддерживающий любую частоту кадровой и строчной развертки в заданном диапазоне. А если ваш компьютер приобретен на "распродаже", у вас окажется доступными только несколько режимов из которых и придется выбирать. Полный список настроек видеорежимов (частоты развертки и настройки таймеров для горизонтальной и вертикальной разверток вы сможете найти в файле /usr/X11/lib/X11/etc/README.Config. А если вы все же решитесь заняться оптимизацией вручную, то имеет смысл обратиться к файлу Videomodes.doc, в том же каталоге. Кроме того, полезную информацию вы сможете найти и в каталоге /usr/doc/faq/howto.  Для просмотра файлов без их распаковки вы можете воспользоваться командой :



zcat <имя файла > | less

( Команда zcat осуществляет копирование сжатого входного файла на

устройство стандартного вывода с автоматический распаковкой).

Таблица 4. Стандартные видеорежимы

Режим

Частота кадров

Синхронизация строк

Эквивалентная полоса

Черезстрочная развертка?

Поддержка VESA?

640x480

60Hz

31.5k

25.175M

Нет

Нет

640x480

60Hz

31.5k

25.175M

Нет

Нет

640x480

63Hz

32.8k

28.322M

Нет

Нет

640x480

70Hz

36.5k

31.5M

Нет

Нет

640x480

72Hz

37.9k

31.5M

Нет

Да

800x600

56Hz

35.1k

36.0M

Нет

Да

800x600

56Hz

35.4k

36.0M

Нет

Нет

800x600

60Hz

37.9k

40.0M

Нет

Да

800x600

60Hz

37.9k

40.0M

Нет

Нет

800x600

72Hz

48.0k

50.0M

Нет

Да

1024x768i

43.5Hz

35.5k

44.9M

Да

Нет

1024x768

60Hz

48.4k

65.0M

Нет

Да

1024x768

60Hz

48.4k

62.0M

Нет

Нет

1024x768

70Hz

56.5k

75.0M

Нет

Да

1024x768

70Hz

56.25k

72.0M

Нет

Нет

1024x768

76Hz

62.5k

85.0M

Нет

Нет

1280x1024i

44Hz

51kHz

80.0M

Да

Нет

1280x1024i

44Hz

47.6k

75.0M

Да

Нет

1280x1024

59Hz

63.6k

110.0M

Нет

Нет

1280x1024

61Hz

64.24k

110.0M

Нет

Нет

1280x1024

74Hz

78.85k

135.0M

Нет

Нет


Тонкость N3 - запуск X-windows.


Теперь самое время попробовать, что получилось. Но запускать Xwindow необходимо с помощью либо openwin или startx. Перед вами появится почти чистый экран. Нажмите кнопку мышки. А теперь вторую. Перед вами появится меню, которое, кстати, вы можете отредактировать по своему усмотрению. Впрочем, как и системное меню, которое как и в MS Windows по умолчанию содержит команды Close, Restore, Kill и так далее.

Теперь вы можете заняться исследованием X-window, так же, как в свое время приступали к MS Windows. Поверьте, многое даже проще!



Тонкость N4 но не последняя - русификация.


Как я уже указывал выше, проблема русификации X-Windows решена г-ном Вакуленко. И с моей стороны было бы просто плагиатом перепечатывать его инструкцию к пакету xcyr. Тем более, что она написана на русском языке.

Но одна сложность все же есть. А именно - русификация Linux в текстовом режиме. Так вот, чтобы заставить Linux говорить по-русски вам потребуется загрузить ЙЦУКЕН-раскладку и знакогенераторы кириллицы с помощью программы Setup (Remap your keyboard), а затем выполнить следующую последовательность команд (которую можно оформить как скрипт-файл):

loadkeys /usr/lib/kbd/keytables/russian.map

mapscrn koi2alt

setfont Cyr_a8x16

printf "\033(K"

echo  Для включения кириллицы нажмите правый <Alt>

Отметим, что начиная с версии 1.2.13 в состав дистрибутива Slackware включен набор дисков cyr1, который содержит все необходимое для руссификации программное обеспечение — экранные шрифты, раскладки клавиатуры, шрифты и раскладки для X-Window, шрифты Postscript для принтера и скрипт-файлы, осуществляющие корректную установку шрифтов в системе.



Требования к аппаратным средствам


Для того, чтобы инсталлировать дистрибутив Red Hat в полном объеме,  вам потребуется как минимум следующая аппаратная конфигурация:

·CPU 386 (лучше, конечно, Pentium, но хватит и этого),

·Mb RAM,

·трехдюймовый дисковод в качестве устройства A:,

·CD-ROM (может быть сетевой),

·Mb свободного места на жестком диске для раздела Red Hat.

Если Вы имеете только 4 Мб RAM, тогда вместо Red Hat Вам следует установить  Slackware Linux. Если же на Вашем диске есть менее 150 Мб свободного  пространства, то Вы сможете установить Red Hat, но в ограниченном объеме.  После первоначальной инсталляции у Вас будет возможность установить с  CD-ROM дополнительные пакеты. При попытке установить сразу слишком  много пакетов, может возникнуть проблема переполнения диска и текущую  инсталляцию придется прекратить и начать все с самого начала.



Трудоемкий и убедительный эксперимент


Загрузите MS-DOS (Если вы забыли какой идентификатор у DOS, а какой у Linux - нажмите клавишу [Tab] и на экран будет выведен список загружаемых разделов. Теперь запустите программу fdisk из MS-DOS. Удалите все разделы Linux, назначьте освободившееся место для раздела DOS, а затем, вернувшись в DOS отформатируйте новый раздел. А теперь попробуйте выбрать в начальном загрузчика раздел Linux и загрузить его.

И к изумлению зрителей "неубиенный" Linux будет загружен в оперативную память. Работать вы конечно же не сможете, поскольку все каталоги и файлы уже уничтожены, но сама система при этом не пострадала!

Но хватит абстрактных экспериментов, давайте продолжим настройку системы. Что мы уже получили? Система поддерживает свой собственный раздел и раздел MS-DOS, теоретически работает с гибкими дисками и приводом CD-ROM. Одна беда, при поытке установки с привода CD-ROM мы получаем сообщение, что он недоступен! В чем же дело?

И вновь все не так страшно, как кажется. Ранее мы упомянули о том, что файловые системы надо монтировать и немного сказали о точке монтирования. Так давайте смонтируем системы для дисководов и привода CD-ROM!



Устанавливаем собственную BBS


Поскольку Linux является многопользовательской и многозадачной операционной системой, на его основе оказывается достаточно просто создать вполне приличную BBS, поддерживающую одновременную работу практически неограниченного количества пользователей.  В этой книге мы рассмотрим BBS Roman CATacombs — ROCAT, которую вы можете найти на CD-ROM TAE Linuxware 1.0 или в Internet по адресу: ......................... .



Установка дистрибутива Red Hat


Хотя диски фирмы Red Hat в России “в чистом вид” достать не так то просто, вы можете познакомиться с этим дистрибутивом приобретя вполне доступный компакт-диск “Открытое ядро”.  На диске имеется руководство по установке системы, однако, как и большая часть Linux-документация, оно ориентировано на людей уже знакомых с особенностями установки UNIX из Среды DOS. Поэтому в этой главе мы рассмотрим процесс настройки дистрибутива Red Hat более подробно.



Установка графической оболочки X-Window


Теперь, после того, как базовое ядро системы установлено, рассмотрим, как же устанавливается графическая оболочка X-Windows.

Linux поставляется со всеми библиотеками и инстументальными средствами,необходимыми для разработки приложений для X-Windows. Хотя одна задача уже решена! Г-н Вакуленко разработал пакет xcyr[5]

для русификации X-windows, который поддерживает различные кодовые таблицы и раскладки клавиатуры. Возможно, кому то покажется относительно бедным набор шрифтов, но как вы догадываетесь, здесь есть к чему приложить руки.

Но для того, чтобы заняться программированием в X-Windows, оболочку надо по крайней мере установить. Вот этим мы сейчас и займемся.

Прежде всего, необходимо установить на винчестер все пакеты, связанные с X-Windows. Конечно же, к ним относятся X и XAP, но не забудьте и библиотеки и вспосогательные средства, как например OI. Самое важное — не скупитесь, ставьте по максимуму! Но не забывайте о тонкостях, которые нигде не описаны.



Установка LINUX


Процесс установки Linux на ваш компьютер во многом определяется используемым дистрибутивом  и специальным программным обеспечением, которое устанавливает тот или иной производитель CD-ROM. В нашей книге мы рассмотрим традиционный дистрибутив Slackware, а также два “фирменных” дистрибутива, которые входят в состав LinuxWare фирмы TAE и RedHat.



Установка начального загрузчика


Во-первых, вы копируете скомпилированный образ ядра поверх уже существующего на винчестере:

cp /usr/src/linux/zImage /vmlinuz

После этого вы повторяете приведенные выше четыре заклинания "rdev", заменив /dev/fd0 на /vmlinuz.

А теперь вы вводите команду Setup и выбираете пункт меню Set LILO. Вначале вы создаете новый сценарий для LILO (команда BEGIN). Затем добавляете в него два раздела - для DOS и для Linux. Тот раздел, который будет упомянут первым будет загружаться автоматически. Для второго вас придется вводить запрос.

При этом вы можете определить временной интервал, в течение которого компьютер будет ожидать ввода пользователя после чего будет осуществлена загрузка первой операционной системы, или же можно заставить LILO выходить на запрос типа системы, которую вы хотите загрузить. По завершении установки всех опций LILO вам остается выбрать пункт end и в MBR будет помещен новый загрузчик.

Имейте в виду, что если вам вздумается еще раз перекомпилировать ядро, то простого копирования его поверх уже существующего будет недостаточно. Вам нужно будет обязательно четыре раза повторить заклинание "rdev" и еще раз создать ЗАНОВО и переустановить загрузчик LILO.

Причина хоть и не лежит на поверхности, но достаточно проста. Файловая система Linux гораздо сложнее, чем кажется пользователю. В частности ядро системы /vmlinuz находится в специальном суперблоке, размещаемом в служебных областях винчестера. Если вам не жалко потерять несколько чаосв уже проделанной работы - можно провести следующий эксперимент.



Установка программ


Вначале, конечно же, необходимо распаковать архив с дистрибутивом Shadow Suite.  При этом (лучше лишний раз повториться) следует учитывать, что если вы располагаете файлом с расширением .tgz то для его распаковки необходимо вначале поместить архивный файл в каталог /usr/src, а затем ввести команду:

       tar -xzvf shadow-current.tgz

И в результате получится новый каталог: /usr/src/shadow-YYMMDD

Возможна другая ситуация, при которой каталог вначале архивировался с помощью tar, а затем упаковывался программой gzip. В этом случае для распаковки вам потребуется ввести следующее:

zcat shadow-current.tar.gz | tar xvf -

Казалось бы, оба варианта должны быть взаимозаменяемы. Увы, скромный опыт работы  Linux показывает, что это не так.

Но довольно отвлечений, продолжим процесс установки. Следующий этап — настройка файла config.h.

Вначале необходимо заменить файлы Makefile и config.h версиями, ориентированными на систему Linux:

cd /usr/src/shadow-YYMMDD

cp Makefile.linux Makefile

cp config.h.linux config.h

Теперь необходимо взглянуть на конфигурационный файл config.h В нем  необходимо сделать одно принципиальное изменение — запретить поддержку групповых паролей, по крайней мере для начальной настройки системы.

Если вы попробуете перестроить libc, не поддавайтесь на провокации и не устанавливайте опцию  SHADOW_COMPAT. В противном случае вы просто не сможете зарегистрироваться в системе.



с операционной системой Linux был


Первый диск с операционной системой Linux был выпущен компанией в сентябре 1993 года. Обычно говорят, что первый блин оказывается комом, но и этот диск вы можете найти интересным.

Вот краткое его содержание:

ARCHIVE_ и DOS_WIN_ - наборы архивов с одной из американских BBS. Содержат огромное количество полезных утилит и документации. Там, например, вы найдете исходные тексты программы просмотра TIFF-файлов и полное описание формата, коммуникационные программы для DOS и Windows, исходные тексты архиваторов LHARC и ARJ, библиотеки на ассемблере, несколько десятков shareware-игр и многое другое.

BSD386  - в этом каталоге находится дистрибутив системы BSD386, одного из конкурентов Linux. Но, как утверждают специалисты, особых преимуществ она не имеет, за исключением того, что появилась в России раньше, а следовательно и более распространена. Во всяком случае, можете попробовать. А утилиты из BSD386 вы можете попробовать перетранслировать в Linux.

KERNELS - В этом каталоге вы найдете два ядра - для компьютера с приводом CD-ROM CDU31A и для привода, поставляемого в мультимедийных наборах Creative (Panasonnic).

LINUX  - дистрибутив системы. Содержит два подкаталога: PACKAGES, в котором находится разбитая "подискетно" SLS-поставка системы и SOURCES, в котором вы найдете архивы с исходными текстами нескольких утилит UNIX. Среди них, между прочим, вы найдете немало интересного, в частности коммуникационные пакеты и средства передачи электронной почты.

LIVE102 - так называемая "живая система". В принципе вы можете установить на винчестере минимальную конфигурацию системы, а затем смонтировать привод CD-ROM и, внеся соответствующие изменения в пути поиска запускать все утилиты прямо с CD-ROM.

LIVE_99P - вспомогательный каталог, используемый программой установки

PICTURES - несколько сотен BMP и GIF файлов.

SLACKWAR и SLS103 - еще две версии дистрибутивов различных версий Linux. Вообще говоря, суть вещи эквивалентные. Выбирайте, какя больше понравится.



SOUNDS - как и следует из названия, содержит огромное количество WAV и ROL файлов.

К сожалению, программа установки, находящаяся в корневом каталоге диска, автоматически устанавливала какое-то экзотическое ядро системы. И догадаться, что надо воспользоваться каталогом KERNELS смогли не многие (я тоже, увы, в их число не вошел). Сегодня использовать страую версию Linux вряд ли имеет смысл, если только вы не ведете ожесточенную борьбу за минимизацию всех расходов. Но вот архивы DOS И Windows представляют определенную ценность и сегодня. Вот, например, содержание уже упоминавшегося каталога TIFF:

Directory MSDOS/TIFF/

 Filename   Type Length   Date   Description

==============================================

DTIFF.ZIP     B  194039  900502  Displays TIFF files on screen, uses TACS

DVTIF1.ZIP    B   15198  900416  TIFF reader:PACKBITS compr/uncomp C src, ALDUS

TACS40.ZIP    B  116888  900425  TIFF Access/Create System - C source, TIFF 4.0

TFTOOL.ZIP    B   62503  900416  TIFF toolkit developer package C source, ALDUS

TIFF_50.ZIP   B   51127  891209  Tagged Image File Format specs, v5.0

TIFFAX.ZIP    B   41572  900416  TIFF FAX format definition/example, ALDUS

Впрочем, что это я о любителях DOS? Мы ведь ведем речь о Linux. Поэтому, позвольте перейти к рассказу о следующем диске - Linux Volume 2.


и отличался прежде всего, корректным


Этот диск появился в январе 1994 года и отличался прежде всего, корректным исполнением программы начальной установки Linux.

На втором диске вы также найдете альтернативную версию FreeBSD, которая размещена в каталогах BSD_USR_ ("живая" система), FREEBSD_ (дистрибутив с интсталлятором) и UPDATE_B, в котором находится "заплаточка" на начальный загрузчик системы.

Весь остальной диск посвящен Linux. Проанализировав все недостатки первого диска, фимрма TAE включила в комплект поставки несколько начальных загрузчиков, помещенных в каталог BOOT. Фактически, загрузчик представляет собой минимальную конфигурацию Linux, поддерживающую, тем не менее файловую систему ISO9600 (CD-ROM). Но поскольку различные типы приводов управляются по-разному, пришлось создать несколько образов дисков, каждый из которых ориентирован на свой привод. Создать загрузочную дискету вы сможете и без программы Install. Вам достаточно воспользоваться программой подорожечного копирования rawrite.exe (для получения справки воспользуйтесь ключом -h).

На диске находится два дистрибутива различных версий SLACKWA0

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

Даже если вы консерватор, не поленитесь заглянуть в каталог SLACKWA1. Потому что, начиная с этого тома, вы сможете обнаружить там "бонусы" —  программы, которые в дистрибутив не входят, но могут оказаться весьма полезными. Вот содержание каталога EXTRA:

BASH_BIN  - еще одна оболочка;

DOSEMU    - эмулятор MS-DOS (вот вам и многозадачный MS-DOS на PC, вкедь никто не мешает вам запускать сразу несколько задач. Кстати, поддерживается и графика. Simcity строит, а F-19 летает!)



GAMES  - сетевая многопользовательская игра, классика UNIX-систем: MultiUser Dungeons (MUD). Текстовая, но завлекательная. На одном терминале играть неинтересно. Но зато проходят Internet-чемпионаты!

GRAPHICS  - содержит программ  построения фотореалистичных изображений методом обратной трассировки лучей и набор программ для просмотра различных графических файлов - TIFF, TGA, JPEG и MPEG.

MATH —  содержит программу Gnuplot 3.5, предназначенную для визуализации двух и трехмерных графиков с возможностью распечатки на любых типах принтеров (да и плоттеров) и поддержкой SVGA-режимов. Аналог хорошо знакомого BoeingGraph или Harvard Graphics. Впрочем, пользовательский интерфейс типично из Unix.

POSTGRES - настоящая СУБД, которая является духовным наследником Ingress. Не путайте ее, пожалуйста с Progress! Postgress содержит диалоговый монитор, кучу скриптов для выполнения отдельных операций на уровне shell-программирования, а также библиотеки для языка Си. Есть также вся необходимая для работы документация. К сожалению, это однопользовательская версия, но вы всегда можете обратиться к разработчикам. В Internet вы можете найти интерфейс для работы с Postgress из под X-window на языках TCL/TK.

SERIAL - весьма примечательный каталог. Содержит новую версию getty - программу доступа к системе с удаленного терминала, которая поддерживает режим обратного дозвона, а также позволяет оперативно переключать линию с передачи данных на разговор и обратно. Вторая версия - mgetty, позволяет использовать Linux-машины в качестве факс сервера, для автоматической рассылки факсов, а также их приема с последующей обработкой (формат Postscript). Согласитесь, что уже эта программка позволяет превратить ваш компьютер в средство зарабатывания денежек! Одна беда, mgetty предполагает использование факс модемов класса 2 и популярные модели US Robotics 14400 Sportster или Worldport оказываются несомвестимыми с ней. А вот USR 28800 вполне подойдет!

SECURITY - абсолютно необходимые вещи для системного администратора любой UNIX-системы. Это программа взлома входных паролей, которая использует довольно интересные эвристические алгоритмы, а также расширяемый словарь вероятных паролей. Проанализировав свой файл /etc/passwd вы сможете обнаружить бреши в обороне своей машины и заставить нерадивых пользователей сменить пароли.



SOUND - как и следует из названия, набор средств для работы со звуком. Содержит весь набор средств, поставляемых с любой звуковой платой. Впрочем, установка драйвера звуковой платы - отдельный процесс, который мы также осветим в специальной статье. А среди программ на этом диске вы найдете программу управления микшером, набор проигрывателей MIDI, WAV, MOD и AU (звуки из мира Sun) файлов, а также программу фонемного синтеза речи, которая умеет даже "озвучивать" текстовые файлы. И конечно же программу проигрывания музыкальных компакт-дисков.

TERMINAL —  содержит набор программ, позволяющих с полной отдачей использовать внешний (или удаленный) терминал. Фактически, это просто удобные утилиты для настройки файла /etc/termcap и для облегчения жизни пользователя.

X11  - набор клиентов для X-Window. На этом диске вы найдете: ANDREW

- глобальная разработка, сравнимая по масштабности разве что с EMAX, впрочем пока вы получите только библиотеки для работы с этим пакетом и всю необходимую документацию; FTPTOOL - оболочка для работы с FTP из X-Window; XFRACT

- программка для синтеза фракталов, никакой особой ценности, но зато какой визуальный эффект!

И, наконец, XGopher —  клиент для работы с Gopher-протоколом Internet. С его помощью вы сможете "прорыть тоннель" до самых окраин мира телекоммуникаций. Если сумеете подключиться к сети не через поднадоевшую bmail for DOS, а как нормальный UNIX-машинист. Впрочем и об этом мы поговорим с вами отдельно.

Как и на предыдущем диске, вы найдете "живую систему" в каталоге LIVE. Но и это еще не все. Специально для наших восточных друзей на диске находится расширение для японоговорящего народа (каталог JE_0_9). Но это к слову. Более полезен для вас набор справочных файлов, сосредоточенный в каталоге READ. Здесь и руководство по подключению принтера и руководство по подключению сетевых адаптеров и так далее и тому подобное.

И  наконец, каталог SRC. В нем вы найдете еще несколько полезных вещей, причем с исходными текстами. Отметим только исходные тексты системы X-Window (Release 5), в которые включены не только X-сервер, но и около четырех десятков X-клиентов. Весьма приличный набор примеров работы в X.


Поистине неисповедимы пути, которыми следует


Поистине неисповедимы пути, которыми следует отечественная мода на операционные системы. Еще несколько лет назад в России активно развивались многозадачные и многопользовательские операционные системы, но вот, словно по мановению волшебной палочки их место, где оправдано, а где и не слишком, заняла MS-DOS. И хотя сегодня все возвращается на свои места, выясняется, что за эти годы мы потеряли слишком много —  мы потеряли культуру многозадачных операционных систем, и поэтому найти сегодня специаиста по UNIX, пусть даже пользователя, несоизмеримо труднее, чем пользователя MS-DOS и Windows. И если в американском оригинале приводился краткий курс начинающего пользователя MS-DOS, то мы решили, что для российского читателя более полезным окажется набор рекомендаций, позволяющих самостоятельно установить одну из версий UNIX, предназначенную для персонального компьютера с процессором 80386 и выше.
На сегодняшний день существует несколько подобных реализаций UNIX. Однако, мы сознательно отказались от продвижения одной из коммерческих систем в пользу "бесплатного UNIXа" — Linux. Причина такого решения —  желание снизить барьер вхождения в работу с UNIX для широких кругов читателей, которые, прежде чем вкладывать довольно существенные средства в коммерческую версию UNIX, хотели бы приобрести некоторый практическмй опыт в установке и эксплуатации подобных систем. Кроме того, многочисленные беседы автора с пользователями и администраторами различных фирм и системными интеграторами Москвы позволили сделать ряд небезынтересных замечаний:
1. Пренебрежительное отношение к системе Linux со стороны пользователей коммерческих систем основано на том лишь факте, что Linux поставляется практически бесплатно — “за хорошие вещи надо платить и очень много!”
2. “Мы не можем себе позволить какой-то там Linux, потому что мы крутая фирма, а поэтому должны соответствовать...” — и это выдается за профессионализм!
3. Многократные заявления о том, что в Linux не реализовано многое из того, что должно быть в “нормальной UNIX-системе” ничем не подтверждаются и носят голословный характер! Попытки выяснить, чего же конкретно не хватает, приводят к мучительному почесыванию шевелюр (лысин) и выдавливанию ответа — “ну это же все знают...”, после которого возникает мучительная пауза.


4. Большая часть критиков Linux и UNIX, отдающая предпочтение Windows 95 и NT выросла на “костях” DOS и никогда не видела UNIX в работе. Поэтому решения из мира UNIX двадцатилетней давности, реализованные, например, в Windows 95 воспринимаются как выдающееся достижение компьютерной мысли, хотя без всякой помпы еще в 1994 году были портированы в самые ранние версии Linux.
5. Легенды о нехватке и дороговизне прикладных продуктов для UNIX и Linux есть досужий вымысел.  Обилиие пиратских компакт-дисков с одними и теми же программами — MS Office, Photoshop и т.д. не означает, что количество действительно популярных продуктов для Windows превышает два-три десятка! А оффис, кстати,  давно реализован и для Linux.
Мой выбор, в конце концов остановился на системе LINUX, которая в настоящий момент наиболее доступна для новичков. Во-первых, ее можно найти на FTP-серверах Internet, в том числе и на московских узлах RELCOM и ДЕМОС, а во-вторых, бурная деятельность российского отделенния американской компании Trans-Ameritech Enterprises привела к тому, что сегодня компакт-диски с различными версиями этой системы можно найти в любом книжном магазине Москвы, Петербурга и некоторых других городов. Появлились в России дистрибьюторы и других поставщиков Linux и даже выпущен первый россйский компакт-диск с дистрибутивами Linux. Кроме того, имеется возможность переноса дистрибутива операционной системы с CD-ROM на трехдюймовые дискеты емкостью 1.44 Мбайт.
НПО “Инфосервис”, оказавшее мне существенную помощь в подготовке данного издания является, на сегодняшний день единственным в  Москве поставщиком, который не только декларирует совместимость своих изделий с Linux, но и поставляет Linux-системы, в том числе и многопроцессорные, под ключ. Именно на компьютере, поставленном этой фирмой мне удалось проверить многие вопросы, связанные с конфигурированием и настройкой системы и подключить Linux-сервер в локальную, а затем и в распределенную сеть. За что приношу коллективу “Инфосервиса” свою глубокую благодарность!

Выбор интерфейса: текстовый или X-Window


Одна из приятных особенностей дистрибутива Red Hat — возможность установки системы в среде X-Window. При этом программа установки постарается более-менее самостоятельно определить конфигурацию аппаратных средств и запустить X-Window в режиме хотя бы 640*480*256. Необходимо сразу же оговориться, что в отличие от MS Windows большая часть пользовательских и системных программ для X предполагает использование более высокого разрешения, как правило, это 1024*768. Поэтому если вы всерьез интересуетесь графикой в UNIX подумайте о хорошем мониторе.

Необходимо учитывать еще одно ограничение. Для установки в среде X-Window вы должны иметь хотя бы 8 Мб оперативной памяти и 8 Мбайтную область подкачки на диске (или 16 Мб RAM).  Впрочем овчинка стоит выделки...

Преимущества установки в среде Х можно свести к следующему:

·

Программа установки самостоятельно настроит хотя бы минимальную конфигурацию X window;

·

Ваши потрясенные коллеги увидят, что по дружественности интерфейса Linux не уступает “кривым форточкам”;

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

Установка в текстовом режиме, безусловно, имеет меньшую наглядность, но зато, во-первых требует меньших аппаратных ресурсов при установке, а во-вторых, более похожа на привычный для большинства пользователей интерфейс программы setup дистрибутива Slackware.



Выбор ядра системы


Первым Вашим шагом будет создание трех дискет с образами дисков: одна   для boot диска и две для ramdisk. ramdisk дискеты одинаковы для любой   аппаратной конфигурации и не зависят от того, какую аппаратуру вы   конкретно имеете. Однако, это не так для boot диска, вариантов которого   существует большое количество и нужно выбрать один из них в зависимости  от Вашей аппаратной конфигурации.

В Таблице 5 содержится информация, которая  поможет Вам выбрать подходящий boot диск.

Код ядра

SCSI-контроллер

Ethernet-контроллер

Привод CD-ROM

0000

 Нет

 Нет

 IDE/ATAPI или SCSI

0001

Нет

Нет

Mitsumi (не IDE/ATAPI), Sony CDU31A/CDU33A/CDU535

0002

Нет

Нет

Matsushita/Panasonic, Sound Blaster, Aztech/Orchid/Okano/Wearnes

0003

Нет

SMC

IDE/ATAPI или SCSI

0004

Нет

SMC

Mitsumi (не IDE/ATAPI), Sony CDU31A/CDU33A/CDU535

0005

Нет

SMC

Matsushita/Panasonic, Sound Blaster, Aztech/Orchid/Okano/Wearnes

0006

Нет

Western Digital

IDE/ATAPI или SCSI

0007

Нет

Western Digital

Mitsumi (не IDE/ATAPI), Sony CDU31A/CDU33A/CDU535

0008

Нет

Western Digital

Matsushita/Panasonic, Sound Blaster, Aztech/Orchid/Okano/Wearnes

0009

Нет

3c503, 3c509, 3c579

IDE/ATAPI или SCSI

0010

Нет

3c503, 3c509, 3c579

Mitsumi (не IDE/ATAPI), Sony CDU31A/CDU33A/CDU535

0011

Нет

3c503, 3c509, 3c579

Matsushita/Panasonic, Sound Blaster, Aztech/Orchid/Okano/Wearnes

0012

Нет

AMD LANCE и PCnet (AT1500 и NE2100)

IDE/ATAPI или SCSI

0013

Нет

AMD LANCE и PCnet (AT1500 и NE2100)

Mitsumi (не IDE/ATAPI), Sony CDU31A/CDU33A/CDU535

0014

Нет

AMD LANCE и PCnet (AT1500 и NE2100)

Matsushita/Panasonic, Sound Blaster, Aztech/Orchid/Okano/Wearnes

0015

Нет

Прочие

IDE/ATAPI или SCSI

0016

Нет

Прочие

Mitsumi (не IDE/ATAPI), Sony CDU31A/CDU33A/CDU535

0017

Нет

Прочие

Matsushita/Panasonic, Sound Blaster, Aztech/Orchid/Okano/Wearnes

0018

Adaptec, Buslogic

Нет

IDE/ATAPI или SCSI

0019

Adaptec, Buslogic

Нет

Mitsumi (не IDE/ATAPI), Sony CDU31A/CDU33A/CDU535

0020

Adaptec, Buslogic

Нет

Matsushita/Panasonic, Sound Blaster, Aztech/Orchid/Okano/Wearnes

0021

Adaptec, Buslogic

SMC

IDE/ATAPI или SCSI

0022

Adaptec, Buslogic

SMC

Mitsumi (не IDE/ATAPI), Sony CDU31A/CDU33A/CDU535

0023

Adaptec, Buslogic

SMC

Matsushita/Panasonic, Sound Blaster, Aztech/Orchid/Okano/Wearnes

0024

Adaptec, Buslogic

Western Digital

IDE/ATAPI или SCSI

0025

Adaptec, Buslogic

Western Digital

Mitsumi (не IDE/ATAPI), Sony CDU31A/CDU33A/CDU535

0026

Adaptec, Buslogic

Western Digital

Matsushita/Panasonic, Sound Blaster, Aztech/Orchid/Okano/Wearnes

0027

Adaptec, Buslogic

3c503, 3c509, 3c579

IDE/ATAPI или SCSI

0028

Adaptec, Buslogic

3c503, 3c509, 3c579

Mitsumi (не IDE/ATAPI), Sony CDU31A/CDU33A/CDU535

0029

Adaptec, Buslogic

3c503, 3c509, 3c579

Matsushita/Panasonic, Sound Blaster, Aztech/Orchid/Okano/Wearnes

0030

Adaptec, Buslogic

AMD LANCE и PCnet (AT1500 и NE2100)

IDE/ATAPI или SCSI

0031

Adaptec, Buslogic

AMD LANCE и PCnet (AT1500 и NE2100)

Mitsumi (не IDE/ATAPI), Sony CDU31A/CDU33A/CDU535

0032

Adaptec, Buslogic

AMD LANCE и PCnet (AT1500 и NE2100)

Matsushita/Panasonic, Sound Blaster, Aztech/Orchid/Okano/Wearnes

0033

Adaptec, Buslogic

Прочие

IDE/ATAPI или SCSI

0034

Adaptec, Buslogic

Прочие

Mitsumi (не IDE/ATAPI), Sony CDU31A/CDU33A/CDU535

0035

Adaptec, Buslogic

Прочие

Matsushita/Panasonic, Sound Blaster, Aztech/Orchid/Okano/Wearnes

0036

EATA-DMA, UltraStor, Future Domain, NCR5380, NCR53c7,8xx, IN2000

Нет

IDE/ATAPI или SCSI

0037

EATA-DMA, UltraStor, Future Domain, NCR5380, NCR53c7,8xx, IN2000

Нет

Mitsumi (не IDE/ATAPI), Sony CDU31A/CDU33A/CDU535

0038

EATA-DMA, UltraStor, Future Domain, NCR5380, NCR53c7,8xx, IN2000

Нет

Matsushita/Panasonic, Sound Blaster, Aztech/Orchid/Okano/Wearnes

0039

EATA-DMA, UltraStor, Future Domain, NCR5380, NCR53c7,8xx, IN2000

SMC

IDE/ATAPI или SCSI

0040

EATA-DMA, UltraStor, Future Domain, NCR5380, NCR53c7,8xx, IN2000

SMC

Mitsumi (не IDE/ATAPI), Sony CDU31A/CDU33A/CDU535

0041

EATA-DMA, UltraStor, Future Domain, NCR5380, NCR53c7,8xx, IN2000

SMC

Matsushita/Panasonic, Sound Blaster, Aztech/Orchid/Okano/Wearnes

0042

EATA-DMA, UltraStor, Future Domain, NCR5380, NCR53c7,8xx, IN2000

Western Digital

IDE/ATAPI или SCSI

0043

EATA-DMA, UltraStor, Future Domain, NCR5380, NCR53c7,8xx, IN2000

Western Digital

Mitsumi (не IDE/ATAPI), Sony CDU31A/CDU33A/CDU535

0044

EATA-DMA, UltraStor, Future Domain, NCR5380, NCR53c7,8xx, IN2000

Western Digital

Matsushita/Panasonic, Sound Blaster, Aztech/Orchid/Okano/Wearnes

0045

EATA-DMA, UltraStor, Future Domain, NCR5380, NCR53c7,8xx, IN2000

3c503, 3c509, 3c579

IDE/ATAPI или SCSI

0046

EATA-DMA, UltraStor, Future Domain, NCR5380, NCR53c7,8xx, IN2000

3c503, 3c509, 3c579

Mitsumi (не IDE/ATAPI), Sony CDU31A/CDU33A/CDU535

0047

EATA-DMA, UltraStor, Future Domain, NCR5380, NCR53c7,8xx, IN2000

3c503, 3c509, 3c579

Matsushita/Panasonic, Sound Blaster, Aztech/Orchid/Okano/Wearnes

0048

EATA-DMA, UltraStor, Future Domain, NCR5380, NCR53c7,8xx, IN2000

AMD LANCE и PCnet (AT1500 и NE2100)

IDE/ATAPI или SCSI

0049

EATA-DMA, UltraStor, Future Domain, NCR5380, NCR53c7,8xx, IN2000

AMD LANCE и PCnet (AT1500 и NE2100)

Mitsumi (не IDE/ATAPI), Sony CDU31A/CDU33A/CDU535

0050

EATA-DMA, UltraStor, Future Domain, NCR5380, NCR53c7,8xx, IN2000

AMD LANCE и PCnet (AT1500 и NE2100)

Matsushita/Panasonic, Sound Blaster, Aztech/Orchid/Okano/Wearnes

0051

EATA-DMA, UltraStor, Future Domain, NCR5380, NCR53c7,8xx, IN2000

Прочие

IDE/ATAPI или SCSI

0052

EATA-DMA, UltraStor, Future Domain, NCR5380, NCR53c7,8xx, IN2000

Прочие

Mitsumi (не IDE/ATAPI), Sony CDU31A/CDU33A/CDU535

0053

EATA-DMA, UltraStor, Future Domain, NCR5380, NCR53c7,8xx, IN2000

Прочие

Matsushita/Panasonic, Sound Blaster, Aztech/Orchid/Okano/Wearnes

0054

Прочие

Нет

IDE/ATAPI или SCSI

0055

Прочие

Нет

Mitsumi (не IDE/ATAPI), Sony CDU31A/CDU33A/CDU535

0056

Прочие

Нет

Matsushita/Panasonic, Sound Blaster, Aztech/Orchid/Okano/Wearnes

0057

Прочие

SMC

IDE/ATAPI или SCSI

0058

Прочие

SMC

Mitsumi (не IDE/ATAPI), Sony CDU31A/CDU33A/CDU535

0059

Прочие

SMC

Matsushita/Panasonic, Sound Blaster, Aztech/Orchid/Okano/Wearnes

0060

Прочие

Western Digital

IDE/ATAPI или SCSI

0061

Прочие

Western Digital

Mitsumi (не IDE/ATAPI), Sony CDU31A/CDU33A/CDU535

0062

Прочие

Western Digital

Matsushita/Panasonic, Sound Blaster, Aztech/Orchid/Okano/Wearnes

0063

Прочие

3c503, 3c509, 3c579

IDE/ATAPI или SCSI

0064

Прочие

3c503, 3c509, 3c579

Mitsumi (не IDE/ATAPI), Sony CDU31A/CDU33A/CDU535

0065

Прочие

3c503, 3c509, 3c579

Matsushita/Panasonic, Sound Blaster, Aztech/Orchid/Okano/Wearnes

0066

Прочие

AMD LANCE и PCnet (AT1500 и NE2100)

IDE/ATAPI или SCSI

0067

Прочие

AMD LANCE и PCnet (AT1500 и NE2100)

Mitsumi (не IDE/ATAPI), Sony CDU31A/CDU33A/CDU535

0068

Прочие

AMD LANCE и PCnet (AT1500 и NE2100)

Matsushita/Panasonic, Sound Blaster, Aztech/Orchid/Okano/Wearnes

0069

Прочие

Прочие

IDE/ATAPI или SCSI

0070

Прочие

Прочие

Mitsumi (не IDE/ATAPI), Sony CDU31A/CDU33A/CDU535

0071

Прочие

Прочие

Matsushita/Panasonic, Sound Blaster, Aztech/Orchid/Okano/Wearnes

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

Если Вы не смогли подобрать образ, который бы работал на Вашей системе,   Вы можете попытаться поискать его в 'images\2940' (для Adaptec 2940) или   'updates\images' (для некоторых более новых образов).

  Обратите внимание, что включена поддержка PCMCIA и она будет работать   с любым boot диском, который Вы выберете[3].



Выбор операционной системы


До недавнего времени вопрос о выборе операционной  системы для персональных компьютеров вообще не ставился. Все пользователи находились в равных условиях — в среде MS-DOS. Но с развитием аппаратных средств и хроническим отставанием как DOS, так и Windows от уровня "железа", на сцену начали выходить казалось бы "тупиковые ветви компьютерной эволюции" -- Windows NT и OS/2. Но кроме этих, коммерческих систем, совершенно неожидано начал получать популярность и один из клонов UNIX — Linux, разрабатываемый широкими (без пре­увеличения) кругами энтузиастов. 

Нет нужды говорить, что правильный выбор операционной системы требует тщательного взвешивания всех "за" и "против". Ведь ошибка в этом вопросе приводит к неоправданным затратам на разработку прикладных программ, эксплуатацию самой вычислительной системы и ее стыковки с вычислительными сетями. Впрочем, если вы страшитесь погрязнуть в изучении документации к системе, редактировании конфигу­ра­ци­онных файлов и вылизывании всяких огрехов, то вам вряд ли стоит отказываться от старой доброй Windows 3.1.  Тем не менее, если вы всерьез подумываете о переходе на 32-разрядную операционную систему, то прежде всего стоит подумать о том, какую же систему выбрать -- Windows NT, OS/2 или Linux. А для этого придется рассмотреть несколько факторов. 



За все приходится платить...


Очевидно, что каждая дополнительная функция, реализованная в системе, приводит к увеличению объема системы, что сказывается на требованиях к оперативной памяти и жестким дискам. Кроме того, чем больше объем операционной системы, тем медленнее она обычно  работает.  Windows NT является самой большой из рассматриваемых нами систем. Причиной этого является высокая сложность системы и большой набор поддерживаемых ею функций. Что, кстати, только повышает конкурентоспособность системы. Linux (в комплекте с X-Window) является следующей по размеру системой.

Собственно говоря, сам Linux занимает  исключительно малый объем, но X-Window является довольно пухлым довеском. Впрочем, в большинстве случаев, графический интерфейс стоит этих затрат.

И наконец, OS/2  является наиболее компактной системой. Именно в этом и состоит привлекательность операционной системы, разработанной IBM. Пользователю необходимо иметь только 8 Мбайт оперативной памяти, чтобы приобщиться к миру объектно-ориентированного интерфейса, и представляет собой неплохую пплатформу для многозадачной работы с приложениями DOS, Windows и OS/2. 

Если вы найдете силы пожертвовать графическим интерфейсом, то Linux окажется  наиболее компактной операционной системой. А кроме того, и самой быстрой. При этом, для большинства задач вам будет достаточно 4 Мбайт оперативной памяти. В результате, Linux с успехом может эксплуатироваться на младших моделях, оснащенных процессором 80386, в то время, как для OS/2 или NT вам придется затратить немало средств на обновление компьютера. Конечно, и избытком оперативной памяти Linux сумеет распорядиться, что называется, по-хозяйски. Так, при работе с 16 Мбайт памяти, Linux оставит для приложений и динамического кэша около 12 Мбайт!

Отметим, что размер системы является одной из наиболее сильных характеристик Linux. система изначально проектировалась максимально компактной и производительной, в то время как для NT основным критерием оптимизации являлась переносимость, а для OS/2 —  совместимость с предыдущими версиями системы.А кроме того, поскольку любой администратор Linux-системы имеет в своем распоряжении полный исходный текст  ОС, она может быть оптимизирована для работы с конкретным оборудованием и нуждами пользователя. Увы, OS/2 и NT похвастаться такой возможностью не могут.



Загрузка базовой системы


Процедура установки сказочно проста даже для новичков — читайте   инструкции на экране и отвечайте на вопросы. Единственная вещь, которую   надо запомнить, это использование клавиши пробела, чтобы выбрать   разделы, которые Вы хотите форматировать. Вы увидите слева от каждого   раздела из приведенного списка кнопку '[ ]', в которой проставляется   отметка; для того, чтобы отметить что-нибудь, нажмите пробел.



Загрузка дистрибутива Slackware


Прежде всего необходимо создать загрузочные диски. Для Unix вам потребуется две дискеты 5.25" HD - так называемые boot и root. Конечно, если загрузочным является дисковод 3.5", то вам потребуется две дискеты емкостью 1.44 МБайт. Кроме того, подготовьте еще две чистых дискеты, они понадобятся при отладке.



Загрузка и разгрузка операционной системы


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

Настоящий материал, среди всего прочего, базируется на одной из книг Linux Documentation Project - System Administration Guide. К сожалению, в комплект поставки Linux эта книга не включается, и вам придется искать ее в Internet самостоятельно. Впрочем, в уже упоминавшемся ТОО “Цифровая Вселенная” вы можете заказать книгу “Linux System Administratorr’s Survivals Guide” или обратиться в НПО “Инфосервис” за “Linux Bible”.



Запуск pwconv


Следующий этап — запуск конвертера паролей pwconv:

cd /etc

/usr/sbin/pwconv

который проанализирует /etc/passwd, разберет его на отдельные поля и создаст два файла: /etc/npasswd и /etc/nshadow, котрые должны быть скопированы поверх /etc/passwd и /etc/shadow.

cd /etc

cp passwd ~passwd

chmod 600 ~passwd

mv npasswd passwd

mv nshadow shadow

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

Если что пошло не так, не теряйте голову и сделайте откат:

cd /etc

cp ~passwd passwd

chmod 644 passwd

 И конечно, после этого вам необходимо восстановить сохраненные ранее файлы конфигурации и программы.