Организация UNIX-систем и ОС Solaris

         

Что делать, если вы забыли пароль суперпользователя


Если пользователь забыл свой пароль, то сообщить ему, какой он был, невозможно. Надо просто установить ему новый. Это можно сделать командой

passwd user

или с помощью программы admintool (в графическом режиме). Изменить пароль любого пользователя может только root. Если же забыт пароль root, то следует поступить одним из следующих способов:

Способ 1 (рекомендован Sun Microsystems):

Загрузитесь с установочного диска Solaris1). Например, дав команду boot cdrom -s2).Создайте каталог /tmp/a (или любой другой, чтобы смонтировать в этот каталог корневой раздел диска).Смонтируйте корневой раздел в /tmp/a (для этого надо знать, какой раздел на диске является корневым3)).

Исправьте /etc/shadow:

vi /tmp/a/etc/shadow

в редакторе найдите поле пароля в учетной записи root и удалите все поле (между первым и вторым двоеточиями).

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

Способ 24):

Загрузитесь с установочного диска Solaris так, как будто вы собираетесь делать upgrade системы.При этом установщик Solaris смонтирует файловые системы, в том числе и корневую, на /a и спросит "Upgrade or Exit"; выберите Exit.

Отредактируйте /etc/shadow как в способе 1, вызвав редактор командой

vi /a/etc/shadow

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


  3)

  Предполагается, что комплект установочных дисков всегда находится в шкафу рядом с сервером Solaris. На всякий случай следует заранее позаботиться о создании копии комплекта. (прим. авт.).

  4)

  Для систем x86 это выглядит немного иначе: b -s или b cdrom -s (прим. авт.).

  5)

  Это следует знать заранее. После того как сервер Solaris настроен, надо распечатать некоторые файлы конфигурации, чтобы все сведения были под рукой. Храните их в шкафу с дистрибутивами или наклейте на корпус сервера. В данном случае нам пригодится содержимое файла /etc/vfstab. Если заранее это сделано не было, следует войти в систему под именем любого пользователя и дать команду /usr/sbin/mount. Однако не во всех случаях такое решение заменит распечатку файлов конфигурации. (прим. авт.).

  6)

  Способ впервые описан по-русски в Сети Евгением Бобиным (Eugene Bobin, http://www.chat.ru/~gene) (прим. авт.).

© 2003-2007 INTUIT.ru. Все права защищены.

История UNIX вкратце


Первая версия многозадачной многопользовательской системы UNIX была разработана в 1969 году сотрудниками подразделения Bell Labs фирмы AT&T Деннисом Ритчи (Dennis Ritchie) и Кеном Томпсоном (Ken Thompson). Она была написана на ассемблере для компьютера PDP-7. К лету 1972 года систему переписали на язык высокого уровня С, что позволяло перенести ее на любую аппаратную платформу. Создатели UNIX впервые предложили операционную систему, полностью написанную на языке высокого уровня.

Первым компьютером, которым управляла новая версия системы, стал компьютер PDP-11 компании Digital Equipment Corporation (DEC). Несколько десятилетий спустя DEC была переименована в Digital, затем поглощена компанией Compaq, которая, в свою очередь, слилась с Hewlett-Packard.

В начале 70-х годов XX века выпускники Университета в Беркли (University of California-Berkeley), вдохновленные новыми идеями UNIX, начали работу над собственной версией UNIX.

В 1977 году вышла первая версия Berkeley Software Distribution - известная университетская версия UNIX. Так как эта система была основана на коде AT&T, для ее использования была необходима лицензия AT&T. Разработчики BSD, подстегиваемые ростом цен на лицензии, полностью переписали исходный код системы к 1991 году.

После этого началось развитие UNIX в двух направлениях: одни команды разработчиков взяли за основу версию Беркли, другие - версию System V Release 4.2, которая была разработана AT&T.

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

Solaris относится к ветви систем System V. Это означает, что в этой системе приняты стандартные для указанной ветви структура каталогов с файлами конфигурации, порядок загрузки ОС и системные утилиты, а также их ключи.

С другой стороны, в Solaris используются некоторые весьма специфичные именно для этой системы соглашения, которые не имеют отношения ни к System V, ни к BSD, поэтому такие случаи будут оговорены особо, чтобы не дезориентировать тех читателей, которые уже имеют опыт работы с другими вариантами UNIX.



Как стать привилегированным пользователем


В UNIX можно "перевоплотиться" в любого пользователя. Для этого служит команда su (switch user):

su имя_пользователя

Команда su без параметров эквивалентна su root.

Для перевоплощения в другого пользователя нужно знать его пароль. В некоторых системах UNIX дать команду su для того, чтобы работать от имени root, по умолчанию может только член группы wheel. Так, например, установлено во FreeBSD. В системах, где для аутентификации используется подсистема PAM, такой эффект достигается следующей строкой в файле /etc/pam.d/su:

auth required /lib/security/pam_wheel.so

Подсистема PAM в настоящее время поддерживается во всех основных системах UNIX: Solaris, HP-UX, FreeBSD и всех новых версиях Linux. Более подробно эта подсистема рассматривается в лекции 10 курса "Администрирование ОС Solaris".

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

Команда su по умолчанию запускает командный процессор от имени другого пользователя, но сохраняет среду окружения старого, т.е. среда окружения наследуется от того командного процессора, в котором выполнена команда su. Это мешает перевоплотиться полностью. Например, если пользователь alen выполнил команду su, то работать от имени root он сможет, а читать почту из почтового ящика root - нет. Потому что почтовая программа проверяет переменную mail и (или) user, которая унаследуется от старого командного процессора.

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

su - имя_пользователя

Обратите внимание на знак - (минус) после команды su.

Например, для полного перевоплощения в пользователя breatney следует дать команду

su - breatney

В некоторых системах UNIX есть программа sudo, с помощью которой любой пользователь может выполнить команду от имени другого пользователя. Системный администратор должен заранее отредактировать файл /etc/sudoers, в котором определяется, кто и что может запускать от чужого имени. При выполнении программа sudo спросит у пользователя его пароль, чтобы убедиться, что ее запускает не тот, кто случайно подошел к терминалу с незакрытой сессией работы.

В Solaris нет sudo, зато есть более сложный способ делегирования части полномочий администратора другим пользователям. Для этого используется управление доступом на основе ролей (RBAC - role based access control). Его смысл состоит в том, что среди всех полномочий системного администратора выделяются их группы, а затем некоторые пользователи наделяются таким подмножеством полномочий, которое соответствует их реальной роли в администрировании системы. Более подробно RBAC рассматривается в лекции 11 курса "Администрирование ОС Solaris".



Какую систему лучше установить?


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

Хорошо тем, кому нужно было устанавливать систему на оборудование фирм Sun Microsystems, Silicon Graphics или Hewlett-Packard. Для этих аппаратных платформ существует по одной операционной системе, так что выбирать не из чего: придется ставить Solaris, IRIX или HP-UX соответственно.

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

Выбор систем UNIX для i386 впечатляет: это и система реального времени QNX, и Solaris, и FreeBSD, и Linux, и многие другие, менее известные системы.

Как выбирать? Что выбрать?

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

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

Если это - высокопроизводительный сетевой сервер, к которому следует подключить адаптер АТМ 622 Мбит, то придется покупать дорогое оборудование Sun SPARC, а для него нет иных систем, кроме Solaris. Если требуется установить компьютер, который будет почтовым сервером небольшой компании или компьютером для хостинга нескольких десятков web-сайтов среднего размера, то подойдет любой новый компьютер i386 под FreeBSD. Если требуется поддержка широкого спектра устройств - от новейших CD-рекордеров до flash-дисков с интерфейсом USB - один из вариантов Linux будет отличным выбором.

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

Может оказаться, что производительность не так важна, как совместимость с конкретным программным обеспечением. Предположим, система автоматизации управления предприятием SAP R/3 работает только под Solaris, а решение о внедрении SAP R/3 уже принято и изменить его нельзя. Тогда волей-неволей придется устанавливать Solaris. Единственным вопросом будет, на какую платформу его устанавливать - SPARC или Intel?

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

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

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

Например, какой UNIX лучше установить на компьютер, чтобы "просто поучиться"? Это обычный вопрос, который слушатели задают на курсах по UNIX. Для обучения следует устанавливать систему, которая на первых порах не будет причинять владельцу крупных проблем. Действительно, много ли опыта добавит новичку процесс подбора совместимых с Solaris 9 сетевых карт или видеоадаптеров? В то же время, Linux или FreeBSD безразлично, какая у него есть сетевая карта (и видеоадаптер!), так как они поддерживают куда более широкий спектр устройств.

Тому, кто впервые в жизни устанавливает UNIX, можно посоветовать установить Red Hat Linux, Suse Linux или Mandrake Linux. По умолчанию они установятся с поддержкой графической среды, и результат установки будет пригоден для использования в качестве рабочего места секретарши, равно как и в качестве файлового сервера компании1). Если вы решили начать с установки почтового сервера, маршрутизатора или web-сервера, правильнее потренироваться на FreeBSD. Тем, кто хочет стать высокооплачиваемым специалистом по Solaris, можно начинать прямо с Solaris. Следует понимать, что каждый вариант UNIX отличается (возможно, незначительно) чем-то своим, и чтобы научиться с первого взгляда разбираться в поведении каждой встретившейся UNIX-системы, все равно придется набраться опыта, пробуя разные варианты UNIX.



Предопределенные пользователи и группы


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

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

В Solaris 9 предопределенными являются пользователи, перечисленные ниже:

root:x:0:1:Super-User:/:/sbin/sh daemon:x:1:1::/: bin:x:2:2::/usr/bin: sys:x:3:3::/: adm:x:4:4:Admin:/var/adm: lp:x:71:8:Line Printer Admin:/usr/spool/lp: uucp:x:5:5:uucp Admin:/usr/lib/uucp: smmsp:x:25:25:SendMail Message Submission Program:/: listen:x:37:4:Network Admin:/usr/net/nls: nobody:x:60001:60001:Nobody:/: noaccess:x:60002:60002:No Access User:/: nobody4:x:65534:65534:SunOS 4.x Nobody:/:

К предопределенным группам относятся следующие:

root::0:root other::1: bin::2:root,bin,daemon sys::3:root,bin,sys,adm adm::4:root,adm,daemon uucp::5:root,uucp mail::6:root tty::7:root,adm lp::8:root,lp,adm nuucp::9:root,nuucp staff::10: daemon::12:root,daemon sysadmin::14: smmsp::25:smmsp nobody::60001: noaccess::60002: nogroup::65534:



Привилегированный пользователь


Один из предопределенных пользователей - это пользователь root с UID, равным нулю.

Пользователь с таким UID называется суперпользователем (superuser) или привилегированным пользователем и всегда имеет имя root. Он имеет неограниченные права на доступ к любому объекту в системе.

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

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



Разные версии UNIX и Solaris в частности


Каждая из систем UNIX, будь то HP-UX, Slackware Linux, FreeBSD или Solaris, имеет различные версии. Это естественно: системы UNIX выпускаются уже давно, и каждая система много раз модифицировалась с момента создания ее первой версии. При выборе системы всегда следует обращать внимание на ее версию и дату выхода. Разные версии систем UNIX обычно называют выпусками (releases). Нумерация выпусков в каждой системе UNIX ведется по-своему. О правилах нумерации всегда сообщается на сайте производителя системы, если же эту информацию оказалось нелегко найти, постарайтесь воспользоваться советами из лекции 8 для поиска нужных сведений.

В Solaris принята относительно простая нумерация выпусков системы. Каждый новый выпуск получает номер, на единицу больший предыдущего. Так повелось с момента создания Solaris 7, которому предшествовал Solaris 2.6. С тех пор нумерация не "прыгает", и очередная версия системы, покидающая в момент написания этой книги цех упаковки продукции завода Sun, имеет номер 10. Если в систему после ее выхода вносятся некие изменения, недостаточно существенные для того, чтобы системе присвоить новый номер, измененный вариант текущей версии называют с указанием даты (месяца и года) внесения изменения, например, Solaris 9 12/02.

Это означает, что мы имеем дело с Solaris 9, версией от декабря 2002 года.

В файле /etc/release в Solaris хранится информация о версии установленной на компьютер операционной системы.



Руководство по системе


В любом варианте UNIX есть главная команда - man. Это команда работы с руководством по системе. Подробнее структура руководства по Solaris будет рассмотрена в лекции 9. Однако уже сейчас, приступая к работе в системе, вы должны знать, что она вас не бросит в трудную минуту. По каждой программе, установленной в системе, по каждому системному вызову из системных библиотек, по многим понятиям и файлам конфигурации, а также драйверам устройств в стандартном комплекте установки системы есть страница руководства.

Для вызова руководства по команде следует набрать

man команда

Для вызова руководства по самой программе man, которая и показывает страницы руководства, наберите

man man

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



Внутреннее устройство UNIX


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

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

Основная часть ядра Solaris состоит из двух файлов - genunix и unix. Это - статическая часть кода ядра. Независимый от платформы файл genunix содержит общие для всех ядер Solaris компоненты, а unix - это зависимый от платформы файл. Специфичный для платформы файл, который используется программой ufsboot для загрузки системы в 32-разрядном режиме, называется /platform/`uname -m`/kernel/unix. Конструкция "обратные апострофы" (` `) обозначает, что часть названия (а именно, название аппаратной платформы) можно узнать по команде uname -m1).

В файле конфигурации ядра /etc/system можно установить значение переменной moddir, которая содержит список каталогов, разделенных двоеточием. Минимальное значение по умолчанию

/platform/platform-name/kernel:/kernel:/usr/kernel

но это значение может быть различным для различных платформ. Наиболее частым значением для большинства платформ является

/platform/platform-name/kernel:/platform/hardware-classname/ kernel:/kernel:/usr/kernel

Конкретное значение platform-name сообщает команда

uname -i

значение hardware-class-name сообщает

uname -m

Файл конфигурации ядра в Solaris - /etc/system, для получения детальной информации об этом файле следует ознакомиться со страницей руководства system(4), это можно сделать командой


webedit::101:ivan,lena,kira

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

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

При входе в систему пользователь набирает имя в ответ на приглашение login:. Затем в ответ на password: следует набрать пароль. При вводе пароль никак не отображается, в том числе и звездочками.

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

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

Пароль может содержать любые символы. Допустимая длина пароля в Solaris составляет от 6 до 8 символов. Символы разных регистров в паролях, как и повсюду в UNIX, считаются различными.

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

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

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

Список пользователей системы хранится в файлах /etc/passwd (в нем нет зашифрованных паролей, и его можно читать всем) и /etc/shadow (здесь есть зашифрованные пароли и дополнительная информация о параметрах пароля, читать можно только пользователю root). Список групп хранится в /etc/group. Структура файлов /etc/passwd, /etc/shadow и /etc/group рассмотрена в лекции 4.


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


Верхняя строка окна (рис. 2.3) содержит три элемента управления: черточку в левом верхнем углу окна (первый элемент), точку (второй) и выпуклый квадрат (третий) в правом верхнем углу окна.


Рис. 2.3.  Верхняя строка окна CDE

При нажатии на первый открывается меню, которое позволяет восстановить первоначальный размер окна - restore (если окно развертывалось на полный экран до того), переместить окно - move, изменить его размер - resize, свернуть - minimize, развернуть на полный экран - maximize, поместить окно на задний план - lower (за окна других программ) или закрыть (close). Кроме того, с помощью этого же меню можно указать, что данное окно должно присутствовать во всех (occupy all workspaces) или нескольких (occupy workspace) рабочих пространствах. При переключении из одного пространства в другое окно будет "переходить" вслед за вниманием пользователя из одного пространства в другое.

Второй элемент управления служит для свертывания окна (эквивалентно выбору minimize в меню первого элемента управления, а третий - для развертывания во весь экран (эквивалентно maximize). У развернутого окна третий элемент управления выглядит иначе (впалый квадрат) и служит для восстановления первоначального размера окна (restore).

В качестве графической среды кроме CDE в Solaris, начиная с версии 9, поставляется GNOME 2.0. Можно использовать эту альтернативу CDE, особенно там, где требуется исполнять программы, специально разработанные для работы с GNOME.



Где хранятся настройки ОС?


Большинство файлов конфигурации UNIX расположены в каталоге /etc. Практически все файлы конфигурации представляют собой обычные текстовые файлы. Довольно часто их содержание снабжено неплохими комментариями. Все строки, которые в файле конфигурации начинаются со знака # (решетка), являются комментариями. Исключением являются файлы конфигурации name-сервера (DNS) - там признаком комментария служит символ ; (точка с запятой). Формат файлов конфигурации бывает разным и зависит от того, чей это файл конфигурации.

Файлы конфигурации пользовательских приложений, особенно тех, что установлены после установки системы без компиляции из исходных текстов, могут находиться не в /etc, а в каталогах типа /usr/local/etc или внутри дерева каталогов, куда установлен пакет программ (/usr/local/apache/conf).

Файлы конфигурации можно редактировать в обычном текстовом редакторе. Некоторые файлы сгенерированы системой или какой-нибудь утилитой автоматически на основании других; в начале таких файлов обычно содержится предупреждение, что для реального изменения конфигурации нужно редактировать не этот файл, а источник, на основании которого сделан файл конфигурации.



Экран - рабочее пространство пользователя


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



Коротко о документации. Организация man-страниц


Невозможно изучать или пользоваться UNIX, не имея руководства по системе. Печатное руководство поставляется только с коммерческими системами, да и то не всегда. Кроме того, печатные руководства, как правило, куда-то исчезают именно в тот момент, когда они вам позарез нужны.

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

cp - copy files and directories

Руководство вызывается командой man. Программа man форматирует страницу руководства и показывает ее на экране с помощью программы форматирования nroff и программы поэкранной выдачи текста more (или ее аналога - page, pg, less). На диске страницы руководства хранятся в неформатированном виде, так как это экономит место на диске. Страницы руководства хранятся в каталогах /usr/share/man/manN (N - номер раздела) или /usr/man/manN либо в каком-нибудь похожем подкаталоге /usr. Однажды отформатированные страницы man складывает в подкаталоги catN. Иногда они расположены там же, где и manN, иногда - нет. Программу man можно запустить с ключом -M, чтобы указать, в каком каталоге искать страницы руководства. Иногда при установке некоторых программ руководства по ним размещаются вне стандартного дерева каталогов man, тогда этот ключ может пригодиться.

Ссылки на man-страницы в литературе обычно включают номер раздела, в котором расположена статья, например, inetd.conf(5) означает статью о конфигурационном файле inetd.conf демона inetd в пятом разделе руководства. В этой книге мы тоже будем так ссылаться на статьи руководства по системе.

В таблице 2.3 перечислены разделы руководства, к которым обращается man. В BSD и System V руководства организованы немного по-разному.

Таблица 2.3. Разделы электронного руководства по UNIX

разделSystem VBSD
1Команды
2Системные вызовы
3Библиотечные несистемные вызовы (например, из библиотеки Perl)
4Драйверы устройств, файлы и протоколы
5Разные документыфайлы конфигурации
6Игры и демонстрационные программыигры и демонстрационные программы
7Драйверы устройств и сетевые протоколы (другие System V системы)тексты, кодировки, выражения
8утилиты системного администрирования
<
Некоторые коммерческие системы UNIX имеют дополнительные страницы руководства, описывающие специфические элементы данной системы. Они обозначаются, как правило, номером раздела с какой-нибудь буквой, например 1b.

Чтобы получить справку по любой команде UNIX или даже понятию, наберите

man то_что_Вас_интересует

Набирайте man -k тема для поиска подстроки тема в заголовках статей руководства.

Команда man -k предполагает, что существует индексированный список заголовков статей руководства. Этот список создается командой catman или каким-нибудь ее аналогом. Синоним man -k - это команда apropos. Для поиска информации о программах можно использовать еще и команду whatis.

Некоторые команды в UNIX - это встроенные команды командного процессора, а не отдельные программы. Например, alias и jobs. Поэтому, если вы не можете найти справку по таким командам, попробуйте почитать man по командному процессору, которым вы пользуетесь (скорее всего, sh или bash).

Кроме man, документация содержится в гипертекстовых файлах формата info и файлах HOWTO. Файлы info нужно читать программой info. Можно ее запустить без параметров и затем дать команду ? для знакомства с системой встроенных команд info. Она отличается от man своей "гипер-текстовостью" и позволяет переходить по ссылкам как внутри документа, так и между документами.

HOWTO - это набор документации, распространенный в Linux. В документах HOWTO разъясняются многие действия, которые могут понадобиться при администрировании. HOWTO распространяется в формате html или в виде текстовых файлов. В отличие от man, не существует жесткой структуры HOWTO. Это просто набор документов, и на одном сайте он может оказаться более полным, чем на другом.

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


Менеджер окон


По умолчанию на консоли Solaris запускается графическая среда, которая называется "общей рабочей средой" (CDE - common desktop environment). Каждое приложение, работающее в графической среде, запускается в отдельном окне. Строго говоря, приложения, специально написанные для графической среды, запускаются в своем собственном окне, а те, что предназначены для исполнения в текстовой среде, могут работать и в графической, но в последнем случае - только в окне эмулятора терминала.

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

Экран в каждый момент времени показывает содержимое рабочего стола, который в Solaris носит название "рабочего пространства" (workspace). Рабочих пространств может быть несколько. С точки зрения менеджера окон, рабочее пространство - это множество окон. Менеджер окон в Solaris позволяет переключаться между разными рабочими пространствами. По умолчанию их четыре, обычно используют от четырех до шести рабочих пространств. С помощью настроек менеджера окон число рабочих пространств можно изменить.

Главная панель (front panel) менеджера окон доступна в любом рабочем пространстве внизу экрана (рис. 2.1). Она позволяет переключаться между пространствами, а также вызывать программы, для этого нужно лишь щелкнуть мышью по соответствующим иконкам. С подобной системой знакомы все, кто пользовался ярлыками в панели задач Windows. За каждой иконкой кроме конкретной программы скрывается целый набор ярлыков, служащих для вызова других, тематически связанных с ней программ. Для доступа к ним следует нажать стрелку над иконкой (рис. 2.2).

Более подробно о настройке среды CDE говорится в главе 30.


Рис. 2.1.  Главная панель CDE


Рис. 2.2.  Содержимое подменю главной панели CDE



Настройка терминала: команда stty


Проверить, как настроен терминал, можно с помощью программы stty:

stty -a

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

stty -a speed 9600 baud; rows = 24; columns = 80; ypixels = 490; xpixels = 570; csdata ? eucw 1:0:0:0, scrw 1:0:0:0 intr = ^c; quit = ^\; erase = ^h; kill = ^u; eof = ^d; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^q; stop = ^s; susp = ^z; dsusp = ^y; rprnt = ^r; flush = ^o; werase = ^w; lnext = ^v; -parenb -parodd cs8 -cstopb hupcl cread -clocal -loblk -crtscts -crtsxoff -parext -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -iuclc ixon -ixany ixoff -imaxbel isig icanon -xcase echo echoe echok -echonl -noflsh -tostop echoctl -echoprt echoke -defecho -flusho -pendin iexten opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel

Для настройки правильной реакции на стандартные комбинации клавиш (см. таблицу 2.1) нужно выполнить команды

stty susp '^z' stty intr '^c' stty erase '^h'

и т.д. Список параметров установки (susp, intr, erase и другие) можно увидеть по команде stty -a или в руководстве (man stty).



Пользовательский интерфейс


Интерфейс пользователя в UNIX может быть текстовым и графическим. Текстовый интерфейс является основным для большинства систем UNIX. Однако в Solaris часто используется графический интерфейс. Мы рассмотрим оба типа интерфейсов. Фактически, все команды, которые выполняются в текстовом интерфейсе, могут быть выполнены в текстовом окне в графическом интерфейсе. Графический интерфейс редко применяется для встроенных систем Solaris, например, там, где Solaris управляет автоматической телефонной станцией или технологическим процессом на заводе. Поэтому системный администратор должен уметь работать, используя любой интерфейс.



Понятие терминала


Терминал - это экран и клавиатура, с помощью которых осуществляется связь с компьютером.

Терминалы бывают графические и текстовые. Графические терминалы могут работать и в графическом, и в текстовом режиме.

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

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

В старых версиях Solaris неофициально поддерживались виртуальные терминалы. В версии 9 эта поддержка отсутствует. Основа виртуального терминала - это монитор и клавиатура, непосредственно подключенные к компьютеру. Однако, хотя монитор всего один, виртуальных терминалов может быть несколько. Вы можете по очереди работать с разными виртуальными терминалами, нажимая клавиши Alt-Fх, где х - номер терминала. С монитором и клавиатурой связано несколько независимых виртуальных терминалов. При работе в графическом режиме надо использовать клавиши Ctrl-Alt-Fn для переключения между виртуальными терминалами.

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

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

При работе с графическим терминалом для получения нескольких терминалов достаточно просто открыть несколько окон и в каждом из них запустить терминальную программу. Так, в Solaris можно запустить несколько приложений, обозначенных в меню CDE как "console". Программа, которая запускается при выборе приложения "console", называется dtconsole. Выбрав в меню "This host", вы запустите терминальную программу dtterm.

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

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

Псевдотерминал - это программа-эмулятор терминала, которая соединяется с UNIX-компьютером через сеть или запускается в графическом режиме (например, dtterm).

Любой терминал (физический, виртуальный или псевдотерминал) может быть графическим. Эмулятор графического терминала базируется на программе X-Server. Подробнее об X-серверах и системе X-Window - в лекции 15 курса "Администрирование ОС Solaris".

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

Существует большое количество разных текстовых терминалов. Наиболее известны терминалы ANSI и VT-100. Разные терминалы отличаются друг от друга управляющими последовательностями. Например, чтобы передать терминалу команду "поднять курсор на одну строку вверх", терминалу VT-100 нужно передать последовательность <Esc>[A. Описания терминалов (и соответствующих управляющих последовательностей) содержатся в файле /etc/termcap и базе данных в подкаталогах /usr/share/lib/terminfo.

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


TERM='VT100'; export TERM

Вывести на экран значение переменной TERM можно командой

echo $TERM

Если переменная TERM определена неверно, терминал будет вести себя непредсказуемо. Например, при нажатии Enter не произойдет перевода строки, или при нажатии стрелки "вверх" на экране появится [[A, а курсор вверх не сдвинется. Некоторые терминалы практически совместимы между собой, например, ANSI и VT-100. Однако отдельные управляющие последовательности могут не совпадать. Поэтому лучше, чтобы в TERM был записан тип именно того терминала, на котором вы работаете.

Таблица 2.1. Управляющие комбинации клавиш
Ctrl-Cпрерывание выполнения программы (termination)
Ctrl-Dконец ввода текста
Ctrl-Sостановка вывода на экран
Ctrl-Qпродолжение вывода на экран
Ctrl-Uстирание введенной строки
Ctrl-Zостановка выполнения программы (suspend)
<backspace>удаление последнего введенного символа

Режимы работы системы


UNIX может работать в однопользовательском режиме (single-user mode) или в многопользовательском режиме (multi-user mode).

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

Однопользовательский режим используется системным администратором для настройки, резервного копирования или ремонта системы (например, запуска программы fsck, которая выполняет проверку и исправление ошибок в файловых системах дисков, или программы dump, которая выполняет резервное копирование).

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

boot -s

или

b -s

программе-загрузчику.

Для перехода из многопользовательского режима в однопользовательский дайте команду

init s

или

init S

Тот же эффект даст выполнение команды shutdown без параметров.

Для того чтобы перевести систему из однопользовательского режима в многопользовательский, нужно перезагрузить компьютер или выйти из командного процессора однопользовательского режима (exit или Ctrl-D, работает в большинстве случаев). Кроме этого, можно запустить программу init с параметром-названием режима работы, например

init 3

Cуществует несколько режимов работы (runlevels) операционной системы. Режим с номером 1 соответствует однопользовательскому режиму, с номером 3 - многопользовательскому. Режим номер 0 - это останов (на этот уровень систему переводит команда shutdown).

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

man init

Дополнительную информацию о режимах работы также можно получить из лекции 9.



Текстовый редактор


В графической среде можно использовать не только текстовый редактор vi или его аналог, но и редактор, в котором окно и меню представлены в графическом виде и есть возможность выбирать пункты меню как нажатием комбинаций клавиш, так и мышью. Можно также использовать предустановленные редакторы dtpad (вызывается с управляющей панели CDE из группы Applications - Text Editor или командой dtpad& из командной строки) или xedit - из командной строки. Редактор dtpad представляет собой несколько урезанный по функциям аналог WordPad из систем Windows.



Текстовый редактор vi


Vi может находиться в одном из двух режимов - командном режиме или режиме ввода. При запуске редактор начинает работу в командном режиме. В этом случае все, что вы набираете на клавиатуре, интерпретируется как команда. Команды в vi короткие - почти все состоят из одной или двух букв. Некоторые команды редактора vi отображаются в служебной строке. Служебной строкой в vi считается последняя строка экрана. Большинство команд редактора никак не отображаются, хотя выполняются. Это не очень удобно, если у пользователя дрожат руки, или он не помнит, какую клавишу только что нажал. Так можно легко стереть или модифицировать текст неожиданным образом. Старайтесь не допускать случайных нажатий на клавиши в командном режиме!

Vi отображает вводимую команду в служебной строке, если это команда поиска, или если команда вводится в режиме совместимости с редактором ed. При отображении чего-либо в служебной строке экрана строка файла, которая раньше показывалась в этой строке, никак не меняется.

Для перехода в режим ввода дайте команду a, i или o. После этого можно будет начинать ввод текста. Текст начнет соответственно вводиться в позиции курсора, в позиции, следующей за позицией курсора, или в начале новой строки, которая появится под текущей строкой. В режиме ввода все клавиши, которые набираются на клавиатуре, за исключением клавиши <Esc>, интерпретируются как набираемый текст. <Esc> - это переход из режима ввода в режим команд.

В режиме ввода не всегда можно пользоваться клавишами передвижения по тексту (стрелками, PgUp, PgDn, Home, End и т.д.). Если терминал настроен не совсем корректно, то нажатие, например, клавиши "стрелка вверх", vi может воспринять как нажатие <Esc>, за которым следует [B. Поэтому может случиться так, что нажав стрелку "вверх" в режиме ввода, вы незаметно для себя перейдете в режим команд. Если вы продолжите ввод текста, он будет воспринят как команда. Таким образом, иногда можно передвигаться по тексту в режиме ввода, но лучше сначала выйти в командный режим, затем перейти по тексту в нужное место и снова перейти в режим ввода.

Переход по тексту в командном режиме выполняется клавишами передвижения по тексту (стрелками, PgUp, PgDn, Home, End), а также нажатием <Ctrl-F> (forward, вперед на страницу), <Ctrl-B> (backward, назад на страницу). Бывает, что клавиши-"стрелки" не работают. Тогда можно использовать вместо них клавиши h, j, k, l следующим образом:


Рис. 2.4. 

Эти клавиши были выбраны только потому, что они расположены рядом; буквы h, j, k и l не соотносятся с английскими словами, которые можно было бы ассоциировать с передвижениями вверх-вниз, вправо-влево.

В таблице 2.2 перечислены основные команды редактора vi. Полный список можно посмотреть в руководстве по vi (man vi) или в книгах Арнольда Роббинса (Arnold Robbins) "Vi Pocket Reference"1) и "Learning the vi Editor".

Таблица 2.2. Основные команды редактора vi

начало ввода
aперейти в режим ввода, начать ввод в позиции, следующей за позицией курсора
iперейти в режим ввода, начать ввод в позиции курсора
oперейти в режим ввода, добавить пустую строку под текущей строкой и начать ввод в новой строке
операции с буфером
ddвырезать текущую строку в буфер
xвырезать текущий символ в буфер
uотменить последнее действие
yyкопировать текущую строку в буфер
pвставить строку из буфера под текущей
замена символа
rnзаменить символ в позиции курсора на n
перемещение по тексту
0перейти в начало строки
$перейти в конец строки
jперейти на сроку вниз
kперейти на сроку вверх
hперейти на символ влево
lперейти на символ вправо
%если курсор стоит в позиции символа "скобка" (круглая, квадратная или фигурная), перейти в позицию соответствующей второй скобки
Ctrl-Gпоказать текущую позицию (номер строки) в файле
поиск и замена
/поиск вперед
?поиск назад
:s/что/на что/[g]поиск и замена
запись и завершение редактирования

ZZ

:q

выход из редактора, запись файла

выйти из редактора

:q!выйти без записи
:wзаписать изменения
:wqзаписать и выйти
:w!записать, даже если нет права записи в файл (срабатывает, только если выполнена от имени root)
:wимя файла записать в файл с другим именем; в дальнейшем будет считаться, что редактируется именно этот файл с другим именем
<Esc>переход в командный режим
<
Все команды, начинающиеся с двоеточия, - это команды режима совместимости с редактором ed. Ввод двоеточия интерпретируется vi как переход к этому режиму. Как только вы введете двоеточие, оно отобразится в начале служебной строки, и оставшуюся часть команды вы будете набирать, видя ее в этой строке. В качестве служебной строки используется последняя строка экрана.

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

15dd

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

Важная часть команд - команды поиска и замены. Обычный поиск выполняется командой /образец, т.е. знак "слэш", за которым следует образец для поиска. При поиске назад по файлу вместо слэша используется вопросительный знак. Для продолжения поиска ставится слэш или вопросительный знак без образца. Если в образце встретится слэш или вопросительный знак, vi сочтет их ограничителем образца и проигнорирует остаток образца. Поиск и замена выполняется командой :s/образец/на_что_менять/. В ней указывается образец для поиска и строка, которой следует его заменить. После завершающего слэша может стоять модификатор g. Если его не поставить, заменен будет только первый образец в строке. Если в строке есть еще подстроки, отвечающие образцу, они останутся нетронутыми. Если поставить модификатор g, будут заменены все подстроки, отвечающие образцу.

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

:23,33s/black/white/g

означает, что нужно заменить все вхождения black на white во всех строках c 23 по 33 включительно. В выражении, описывающем диапазон, допустимы числа и символы "." и "$", а также арифметические выражения. Символ "." обозначает текущую строку, символ "$" - последнюю строку файла. Например,

:.,.+7s/black/white/g

означает замену black на white в восьми строках, начиная с текущей.

Допустим, мы находимся в первой строке. Тогда выражение

.,.+7

фактически означает

1,1+7

т.е.

1,8

Команда

:.,$s/yellow/blue/g

означает замену yellow на blue во всех строках, начиная с текущей и до конца файла.

В режиме совместимости можно не только выполнять команды поиска и замены. Здесь есть еще команда удаления - d. Команда

:1,.d

удалит все строки с первой по текущую.

Диапазон может состоять из одной строки, например команда

:4d

означает требование удалить четвертую строку.

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

:56

вызовет переход к 56-й строке.


Управляющие комбинации клавиш


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

Некоторые терминалы не воспринимают клавишу <backspace> стандартным образом, вместо нее на таких терминалах можно использовать клавишу <Delete>.

В старых системах клавиша <Delete> могла использоваться вместо <Ctrl-C> для прерывания работы программы.

Команда Ctrl-D (конец ввода текста) может использоваться в командном интерпретаторе для выхода из него. При работе в текстовом режиме выход из командного интерпретатора, запущенного для пользователя при входе в систему (такой экземпляр интерпретатора называется login shell), означает автоматическое завершение сеанса работы с системой (logout).

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



в нем произвольный текст, используя


Запустите редактор vi. Наберите в нем произвольный текст, используя только латинские буквы, знаки препинания и цифры. Запишите получившийся текст в файл proba.pera.Откройте файл proba.pera с помощью редактора vi. Замените все вхождения символа a на символ z во всех строках файла со второй по пятую включительно. Запишите файл.При возникновении вопросов по выполнению пп. 1 и 2 воспользуйтесь справочным руководством по vi.Дайте команду выключения системы. Выключите компьютер.

Вход в систему и выход из системы


Для входа в систему следует набрать имя пользователя (login) и пароль (password). После загрузки система работает самостоятельно, независимо от того, вошел кто-то в нее или нет. Под "войти в систему" мы подразумеваем начало интерактивного сеанса работы с системой, когда пользователь отдает ей команды, сидя перед клавиатурой и экраном.

После входа пользователя в систему для него запускается программа - командный процессор. Эта программа также часто называется интерпретатором команд, оболочкой или "шеллом" (shell). В среде этой программы проходит весь сеанс работы пользователя с системой. При входе с графической консоли Solaris вся работа проходит в среде программы-менеджера окон. Графический интерфейс пользователя и программы, которые его обеспечивают, в Solaris называется CDE (Common Desktop Environment). Более подробно он рассматривается в разделе "Интерфейс CDE" и в лекции 15 курса "Администрирование ОС Solaris".

Для выхода из системы следует дать команду logout или нажать кнопку Exit в центре внизу экрана, если вы работаете в CDE. При работе в командном процессоре в текстовом режиме достаточно нажать Ctrl-D или дать команду exit (это эквивалентно Ctrl-D). Если в процессе работы вы запустили несколько командных процессоров, то команду exit или Ctrl-D придется давать до тех пор, пока, выходя из запущенных командных процессоров, вы не доберетесь до самого первого, который запустился при вашем входе в систему.



Включение и выключение компьютера


Что происходит после нажатия на кнопку включения компьютера? Начинается загрузка - сначала BIOS, затем - операционной системы. При загрузке UNIX сначала загружается ядро, затем - все остальное. Подробно процесс загрузки описан в лекции 9.

На всех терминалах после загрузки будут светиться приглашения "login:".

Во время загрузки будут запущены сетевые и системные приложения, такие как сервер протоколирования syslogd, web-сервер, сервер баз данных.

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

Однако нельзя выключать Solaris когда угодно. Перед выключением следует обязательно дать команду shutdown или halt.

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

В Solaris команда shutdown имеет ключ g, который задает время в секундах, через которое следует начать процедуру выключения системы. Для немедленного останова следует дать команду

shutdown -g 0

По команде shutdown Solaris переходит в режим работы 0. В этом режиме система завершает работу, и питание компьютера выключается. Выключение питания должно поддерживаться аппаратно. Если это не так, система выключается и предлагает ввести пароль root для продолжения работы в однопользовательском режиме или Ctrl-D для перезагрузки в многопользовательский режим. Подробнее о режимах работы системы говорится ниже в разделе "режимы работы системы" и в лекции 9.

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

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

Выключать UNIX простым отключением питания без предварительного предупреждения (в виде shutdown или halt) нежелательно, так как данные, еще не записанные на диск и хранящиеся в оперативной памяти, будут потеряны. Иногда это приводит к ошибкам в файловой системе на диске и может потребовать их исправления программой fsck (аналог scandisk в Windows). Команду shutdown может дать только root.



Cпособы установки


Прежде всего надо определить, что предстоит сделать:

установить Solaris на один компьютер или на несколько однотипных компьютеров;установить только операционную систему Solaris или же еще какие-либо дополнительные пакеты программного обеспечения.

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

Solaris Web Start Installation Program.Solaris suninstall Program.Solaris Live Upgrade Method.Factory JumpStart Installation Method.Custom JumpStart Installation Method.Web Start Flash Installation Feature.

Последние два способа применяются для установки Solaris на несколько однотипных компьютеров и требуют использования созданного администратором профиля1) (profile) установки.

Названия способов здесь и далее приводятся по-английски, чтобы легче было руководствоваться англоязычной документацией и англоязычным пояснительным текстом на web-сайте http://www.sun.com или на компакт-дисках дистрибутива Solaris 9.



Factory JumpStart Installation Method


Способ Factory JumpStart автоматически устанавливает Solaris 9 на новые системы архитектуры SPARC. Для этого требуется включить систему и вставить первый компакт-диск Solaris 9 Software или Solaris 9 DVD в привод CD или DVD. Параметры установки будут выбраны автоматически, в зависимости от типа компьютера, на который производится установка. Для систем архитектуры x86 этот способ недоступен.



Как создать образ Web Start Flash


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

flarcreate -n имя ключи путь

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

Для разделения и объединения созданных архивов служит команда flar.

Чтобы клонировать установленную систему с помощью созданного образа установки, следует записать этот образ на один из следующих носителей, путь к которому затем надо будет указать в качестве источника для установки Solaris везде, где его требуется установить:

каталог NFS;web-сервер;FTP-сервер;лента;компакт-диск CD или DVD;локальный жесткий диск компьютера, на который планируется установить Solaris.

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

Для установки системы из образа установки можно воспользоваться любым из вышеперечисленных методов. Если производится интерактивная установка Web Start, то следует начать ее обычным образом, например, загрузившись с компакт-диска Solaris Installation CD. Как только установочная программа попросит выбрать местоположение дистрибутива (Specify Media), надо выбрать местоположение образа установки (Web Flash Archive). В зависимости от типа носителя, на котором он хранится, следует либо вставить компакт-диск с образом установки (местоположение на CD или DVD), либо указать путь к образу (NFS), либо указать адрес и, если требуется, информацию о прокси-сервере (http или ftp), или указать файл устройства ленты, если выбрана установка с ленты.

Аналогично следует поступить при установке с помощью программы suninstall: в диалоговом окне Flash Archive Retrieval Method потребуется указать путь к образу установки.

При установке методом Custom Jumpstart следует:

Создать на главном сервере установки файл правил rules, как описано в лекции 14 курса "Администрирование ОС Solaris".


Создать на главном сервере установки файл профиля, как описано лекции 14 курса "Администрирование ОС Solaris", и в нем указать тип установки, местоположение образа установки и правила разбиения дисков на разделы. Это может выглядеть, например, так:

install_type flash_install archive_location nfs masterserver:/export/solaris9archive partitioning explicit filesys rootdisk.s0 3000 / filesys rootdisk.s1 512 swap filesys rootdisk.s7 free /export/home



Указать на главном сервере имена компьютеров, на которые через сеть будет установлена система Solaris 9:

# cd /export/home/s9cdsparc/Solaris_9/Tools # ./add_install_client -d hero sun4u

Вместо /export/home/s9cdsparc следует указать каталог образа установочного компакт-диска, в котором в вашей системе находится программа add_install_client. В данном примере hero - имя сервера, который будет установлен через сеть (а не главного сервера установки!), а sun4u - название платформы этого сервера.

Выполнить установку систем-клонов.

Более подробно об установке способом Custom JumpStart говорится в лекции 14 курса "Администрирование ОС Solaris".


Порядок установки


Прежде всего запускается Solaris Device Configuration Assistant (DCA). Это программа с текстовым интерфейсом, которая распознает, какие в компьютере установлены устройства, и помогает настроить ядро для последующей установки системы и ее дальнейшей работы.

При старте DCA находит устройства, установленные в компьютере. То, что найдено на этом этапе, может не поддерживаться ядром. Если некое устройство распознано, это не значит, что ядро Solaris сможет работать с этим устройством после установки системы. Например, сетевой адаптер SMC 9432 EtherPower II прекрасно распознается программой DCA, но впоследствии не поддерживается ядром Solaris 9. Некоторые устройства, возможно, придется поддерживать с помощью драйвера, написанного вне Sun Microsystems, так как "фирменный" драйвер, идущий в поставке системы, не обеспечивает их стабильной работы. Так, для сетевого адаптера Realtek 8139 рекомендуется установить драйвер от Масаюки Мураямы (Masayuki Murayama), http://homepage2.nifty.com/mrym3/taiyodo/eng/.

Если при старте DCA какие-то из устройств не были обнаружены, следует указать явным образом, что именно следует искать (это делается нажатием клавиши F3).

Когда все устройства определены, приходит пора указать, с какого устройства будет происходить загрузка. Имеется в виду первичная загрузка ядра в момент установки. Этим устройством может быть сеть или CDROM. В подменю Boot Tasks можно выбрать параметры автозагрузки - таймаут для выбора альтернативного варианта загрузки и т.п. Настройки по умолчанию являются вполне приемлемыми.

После этого работа DCA завершается, и начинается этап, который зависит от выбранного метода установки. Мы рассмотрим вариант Solaris Webstart Installation. Потребуется выбрать язык установки: предлагается французский, немецкий, два диалекта китайского, японский, а также английский. Язык установки не связан с тем, какие языки будут поддерживаться системой после установки.

После выбора языка запускается Solaris Installation Program. Следующей по порядку запускается kdmconfig. Это программа выбора параметров графической подсистемы. Здесь потребуется указать тип монитора, видеоадаптера и размер экрана. Можно отказаться от настройки графической подсистемы, тогда при каждой следующей загрузке системы будет предлагаться настроить эти параметры. Впоследствие можно запустить kdmconfig вручную из командной строки в текстовом режиме или в окне треминала. Не следует указывать эти параметры наобум: попытка протестировать видеорежим с неверным типом видеоадаптера kdmconfig безнадежно "подвесит" компьютер. Если это произошло на этапе установки системы, установку придется начать заново. В общем случае, если настраивать параметры графического режима в момент установки нет времени, возможности или желания, лучше пропустить эту настройку вовсе, чем лгать установщику.

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

После kdmconfig настает черед разделения диска на разделы. По умолчанию весь имеющийся диск отдается в монопольное пользование системе Solaris. При этом минимальный раздел swap займет 414 Мб (512 Мб по умолчанию) и расположится в первых цилиндрах диска (начиная с третьего). Этот раздел будет вначале (при установке системы) использоваться в качестве временного диска.

Если установка системы неожиданно прервалась на этапе, когда разделы диска уже определены, можно попробовать запустить ее заново командой /sbin/cd0_install.

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

Entire Solaris Software Group Plus OEM Support 2.9 Gbytes

Entire Solaris Software Group 2.7 Gbytes

Developer Solaris Software Group 2.4 Gbytes

End User Solaris Software Group 2.0 Gbytes

После определения разделов диска программа установки начнет копировать mini_root на жесткий диск. Этот процесс занимает около 20 минут, хотя на быстрых дисках протекает значительно быстрее. Mini-root - это минимальное ядро Solaris, достаточное для обеспечения работы программы установки.

Если при копировании mini-root возникнут множественные ошибки чтения компакт-диска или ошибка с сообщением


Warning: /pci@0,0/pci-ide@7,1/cmdk@0,0 ( Disk 0) Error for command 'read sector'. Error level 'Informational' Sense Key: aborted command Vendor 'Gen-ATA' error code: 0x3

следует отключить поддержку DMA. Подробности можно почерпнуть из лекции 4, раздел "Отсутствие поддержки DMA". Затем установку системы можно начать снова.

После копирования mini-root система перезагрузится и потребуется вставить диск Solaris Software 1, а затем - Solaris Software 2.

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

После перезагрузки запускается syslogd и начинается выполнение программы webstart (вначале в командной строке, затем в графическом режиме). Графический режим включится только в случае корректных настроек видеоадаптера, выполненных с помощью kdmconfig.

Потребуется выбрать часовой пояс (time zone), имя компьютера (hostname), пароль пользователя root.

Затем следует выбрать тип установки: default или custom install. Для установки корректной локализации (например, русификации) Solaris это - ключевой момент. Надлежит выбрать custom install, т.к. по умолчанию устанавливается только поддержка английского языка (English locale).

При выборе русской локализации, отличной от RU.UTF-8 (поддержка кириллической страницы unicode), будет невозможно переключаться между языками при вводе текста в системе с помощью нажатия комбинации клавиш. Будет доступно переключение только с помощью мыши в специальном окне, ассоциированном с приложением. Такое "подокно" появится только в системных приложениях. Например, его не будет для приложения OpenOffice 1.1, которое вы, возможно, захотите установить дополнительно после установки системы.

Подробнее о работе с русским языком в Solaris 9 говорится в лекции 4.

После выбора типа установки осуществляется выбор набора программ (software group). О том, как это сделать, речь шла выше в разделе "Выбор набора программ".

Наконец, система потребует подтвердить, что вы уверены в правильности выбранного деления дисков на разделы, после чего начнется установка указанного набора программ. Длительность этой процедуры зависит от выбранного набора программ, скорости процессора и (в наибольшей степени) от скорости привода CD-ROM. После завершения установки производится перезагрузка, и свежеустановленная система загружается в многопользовательском режиме.


Solaris Live Upgrade Method


Метод обновления системы Solaris Live Upgrade позволяет создать копию среды загрузки и обновить только копию, пока задействован оригинал. Можно запустить обновление в графической среде или с интерфейсом командной строки. Сначала создается копия действующей среды загрузки, после чего можно обновить систему или установить образ установки типа Web Start Flash в неактивную копию. Затем обновленная копия активируется при следующей перезагрузке. Это позволяет при необходимости вернуться обратно, указав, что следует пользоваться старой средой. Подробности этого способа обновления системы можно почерпнуть из руководства по установке.



с использованием загрузочного CDROM Solaris


Выполните установку Solaris 9 с использованием загрузочного CDROM Solaris Installation CD и Solaris 9 Software CD 1 of 2 и Solaris 9 Software CD 2 of 2. При необходимости воспользуйтесь материалом лекции 4 для борьбы со сбоями при установке системы.

Установка с помощью Solaris suninstall Program


Установка посредством программы suninstall производится с компакт-диска Solaris 9 Software 1 of 2. Этот способ позволяет установить только саму операционную систему Solaris 9 без дополнительных приложений. Установка с помощью suninstall выполняется с интерфейсом командной строки.

Так же, как и предыдущий, этот способ неудобен для пакетной установки системы на несколько компьютеров, потому что предполагает интерактивное общение между программой-установщиком и системным администратором. Для пакетной (неинтерактивной) установки следует воспользоваться способами Custom JumpStart Installation или Web Start Flash Installation.

Для того чтобы начать установку способом suninstall, достаточно просто загрузиться с компакт-диска Solaris 9 Software 1 of 2.



Установка с помощью Solaris Web Start Installation Program


Этим способом стоит воспользоваться в следующих случаях:

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

Этот способ отличается от других тем, что обеспечивается отдельным Java-приложением Solaris Web Start Installation. Установка производится с компакт-диска Solaris Web Start Installation или диска Solaris 9 DVD. С помощью Solaris Web Start Installation неудобно устанавливать несколько однотипных систем, потому что этот способ предполагает интерактивное общение между программой-установщиком и системным администратором. Для пакетной (неинтерактивной) установки следует воспользоваться способами Custom JumpStart Installation или Web Start Flash Installation.



Установка способом Custom JumpStart


Этот способ позволяет установить систему с нуля или выполнить обновление более ранней версии Solaris. Установка производится с интерфейсом командной строки и предполагает использование ранее подготовленного профиля установки для установки Solaris на нескольких компьютерах.

Создание профиля установки (файл конфигурации с описанием параметров и особенностей установки) - дело достаточно трудоемкое, поэтому если планируется установить Solaris на два-три компьютера, может оказаться проще установить Solaris на каждый из них способом Solaris Web Start Installation Program или с помощью suninstall.

Custom JumpStart Installation Method специально предназначен для пакетной установки системы на несколько компьютеров и не предполагает интерактивного общения между программой-установщиком и системным администратором.



Установка способом Web Start Flash


Web Start Flash Installation позволяет произвести установку Solaris 9 на большое количество компьютеров на основе настроек, заранее сделанных на главном сервере установки (master server). Для установки Solaris этим способом следует вначале настроить главный сервер установки, а затем создать архив Web Start Flash. Можно создать несколько архивов и указать, какие из них следует использовать для установки системы на определенные компьютеры.

Архив Web Start Flash представляет собой образ установки, поэтому установка из такого архива выполняется намного быстрее, чем любым другим способом. Это связано с тем, что при установке другими способами программа установки обновляет базу установленных пакетов при установке каждого выбранного пакета программ, а образ Web Start Flash уже содержит и все требуемые для установки пакеты и базу установленных пакетов.

Каждый из перечисленных способов позволяет организовать сервер установки и создать на нем образ Web Start Flash. Программа-установщик спрашивает, желаете ли вы установить образ Web Start Flash, если вы используете метод установки Web Start Installation, Solaris Live Upgrade или программу suninstall. В остальных случаях вы можете указать, что это следует сделать, используя настройки профиля установки.

После того как образ Web Start Flash создан, его нельзя изменить. Если требуется установить Solaris на несколько разных компьютеров с разными установками, следует создать по одному образу Web Start Flash для каждого вида компьютеров в отдельности. Помните, что образ Web Start Flash занимает много места на диске: это образ всех устанавливаемых каталогов.

Этот способ лучше всего подходит для установки системы на множество однотипных систем. Если требуется установить много систем разных конфигураций, надо пользоваться способом Custom Jump Start Installation.



Выбор набора программ


Все программы и другие компоненты системы, которые инсталлируются в процессе установки Solaris, объединены в пакеты программ. Эти пакеты имеют имена, начинающиеся на SUNW, например, SUNWdtab.

Пакет (software package) объединяет файлы, каталоги и сценарии установки в какой-то одной категории (конкретное приложение, система). Например, пакет SUNWesu включает такие программы, как lastcomm, banner и т.п.

Пакеты организованы в так называемые кластеры (software clusters). Кластерам даются имена, начинающиеся на SUNWC, например, кластер SUNWCdtusr содержит пакеты SUNWdtezt, SUNWdthe,SUNWdthev, SUNWdthez, SUNWdticn, SUNWdtim и другие, необходимые для работы графической среды CDE.

Кластеры ПО объединены в группы ПО (software groups), которых всего пять:

Core (SUNWCreq);End User (SUNWCuser);Developer (SUNWCprog);Entire distribution (SUNWCall);Entire distribution plus OEM (SUNWCxall).

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

Группа Core включает в себя только минимально необходимые для работы компоненты системы. Если установить только группу Core, система займет 718 Мб дискового пространства. В эту группу входят базовое программное обеспечение для работы с сетью и драйверы, которые требуются для работы графической среды, но не входит сама графическая среда. Установка только группы Core может подойти для тех систем, которые будут эксплуатироваться в качестве серверов (без графического интерфейса). Скорее всего, кроме группы программ Core потребуется установить некое дополнительное программное обеспечение, которое и будет обеспечивать функциональность сервера (например, СУБД).

Группа End User состоит из программ группы Core и программ, необходимых пользователю рабочей станции, в частности, графического интерфейса CDE или GNOME и программ для работы в нем.

Группа Developer содержит программы группы End User и необходимые разработчикам библиотеки, заголовочные файлы (include files) и утилиты. Внимание! Компилятор языка С не входит в стандартную поставку Solaris 9! Можно скачать GNU C с web-сайта http://www.gnu.org или взять фирменный компилятор Sun и лицензию на него с ограничением по времени работы; все это - на web-сайте http://www.sun.com.

Группа Entire distribution включает в себя все кластеры ПО Solaris, относящиеся к платформе вашего компьютера. Этот набор пакетов - заведомо избыточный, но если на диске есть свободные полтора гигабайта, почему бы не заполнить их разным ПО?

Группа Entire distribution plus OEM состоит из программ группы Entire distribution и дополнительных драйверов для поставщиков OEM-систем. Эти дополнительные драйверы могут не иметь отношения к конфигурации вашего компьютера и представлять интерес только для владельцев систем SPARC.

Какой из этих групп программ отдать предпочтение? Если на диске достаточно места (есть свободные полтора гигабайта, которые не предназначены для других надобностей), то Entire Distribution представляется хорошим выбором, поскольку позволяет не заботиться о возможных взаимосвязях устанавливаемых программ. Если вы остановились на другой группе ПО, следует, устанавливая затем в систему дополнительные программы, позаботиться о том, чтобы для этих программ в системе были все необходимые библиотеки.

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

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

Термины "группа программ" (Software Group), "метакластер" (metacluster), "вариант установки" (distribution), "установочный кластер" (installation cluster) часто употребляются в качестве синонимов в отношении наборов пакетов программ в Solaris. Постарайтесь относиться терпимо к этому словарному разнообразию.

Эту словесную путаницу нередко усугубляет неудачный перевод, а также и сама компания Sun Microsystems, которая употребляет слово cluster и в отношении групп пакетов программ, и в отношении объединенных в аппаратный кластер компьютеров. Аппаратным кластером принято называть совокупность компьютеров, которые с помощью специального программного обеспечения могут выполнять программы параллельно на всех процессорах кластера, обеспечивая оптимальную загрузку каждого из них. При этом такой аппаратный кластер обычно обеспечивает и общее дисковое пространство.

Для проверки того, какая группа программ была установлена при установке системы Solaris, следует изучить содержимое файла /var/sadm/system/admin/CLUSTER.

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

С другой стороны, некоторые пакеты ПО, относящиеся к поддержке конкретной аппаратной конфигурации и входящие в группу программ Entire Distribution Plus OEM, также устанавливаются при выборе любого из типов установки. А как же иначе система будет работать с оборудованием?

Независимо от используемого метода установки, программа-установщик обязательно спросит, какую группу ПО следует установить. Выбор за вами.



Выбор оборудования


Это самый важный этап установки. Изучите список Hardware Compatibility List, размещенный по адресу http://www.sun.com/bigadmin/hcl/, чтобы избежать лишних проблем на этапе установки. Если Solaris не поддерживает какие-либо устройства, установленные на вашем компьютере, не следует ожидать, что при установке он неожиданно начнет их поддерживать. Многократно проверено, что установка Solaris на компьютеры с неподдерживаемыми устройствами заканчивается установкой других устройств и перенастройкой Solaris. В тех редких случаях, когда система все же "принимает" такое устройство, оно не предоставляет достаточной функциональности. Например, неподдерживаемый видеоадаптер даст возможность работать, но графическая среда будет работать с разрешением 640 на 480 в 16 цветах. Правда, заманчивая перспектива увидеть мир Solaris глазами создателей первых IBM PC AT?

Если вы устанавливаете сервер, от которого потребуется высокая производительность (особенно дисковая или сетевая), а за финансированием дело не станет, надо рассмотреть возможность покупки компьютера на RISC-платформе SPARC. В этом случае, так как платформа является родной для Solaris, вы определенно избежите несовместимости операционной системы и оборудования. Однако это решение потребует примерно вдвое или даже втрое больше затрат и ограничит круг соотечественников, у которых вы можете попросить совета. Количество пользователей компьютеров SPARC в России очень невелико.

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

сетевой адаптер обязан входить в список совместимого оборудования Solaris (HCL - Hardware Compatibility List). Обратите внимание на то, что каждая версия Solaris имеет свой собственный список! Некоторые сетевые адаптеры (например, Realtek 8139) работают только при условии установки драйверов сторонних производителей. Сведения о конкретных драйверах можно почерпнуть, в частности, из конференции http://www.solaris.opennet.ru;видеоадаптер может отсутствовать в списке совместимого оборудования Solaris, и при этом работа в системе будет возможна (как в текстовом, так и в графическом режиме), однако в этом случае работать в графической среде CDE будет крайне неудобно; адаптеры ATI поддерживаются, насколько показывает наш опыт, лучше других;контроллеры ATAPI (IDE) не всегда корректно работают в режиме DMA. В этом случае следует отключить поддержку DMA (см. раздел "Начало установки" в этой лекции) и смириться с заметным снижением быстродействия системы. По возможности следует использовать контроллеры и диски SCSI, при условии, что устанавливаемый в компьютер контроллер содержится в списке совместимого оборудования Solaris.



Admintool


Программа admintool является устаревшей, и в системах Solaris 9 и в более поздних, начиная с мая 2002 года, ее может просто не быть. Вместо нее рекомендуется использовать Solaris Management Console (SMC). Однако, в доступных нам версиях Solaris программа admintool вполне способна работать и может оказаться удобной, поэтому здесь мы коротко рассмотрим ее функции. Подробнее программа Solaris Management Console рассматривается в лекции 16 курса "Администрирование ОС Solaris".

Программа admintool предназначена для управления пользователями, группами, принтерами, последовательными портами (serial ports), для назначения имени и IP-адреса компьютера (фактически - редактирования файла /etc/hosts) и управления ПО. Последняя функция в admintool в Solaris 9 x86 не всегда поддерживается, но поддерживалась в версиях до Solaris 8 включительно.

Для управления пакетами ПО следует использовать программу prodreg (запускается в графическом режиме), которая служит полноценным интерфейсом для установки и удаления пакетов программ, управляя Solaris Product Registry - базой данных об установленных продуктах.

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

Тип объектов, которыми вы собираетесь управлять с помощью admintool, следует выбрать в пункте меню Browse (рис. 4.1):

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

Например, можно установить любые свойства учетной записи пользователя, которые перечислены выше, при рассмотрении формата файлов /etc/passwd, /etc/shadow и /etc/group.

Фактически, любая программа управления учетными записями, будь то admintool, Solaris Management Console или любая другая программа, для работы со свойствами пользователя в графическом режиме все равно вызывает простые системные программы с интерфейсом командной строки для выполнения любых операций со свойствами пользователя. В Solaris для создания новой учетной записи пользователя (добавления пользователя в систему) используется программа useradd, для модификации учетной записи пользователя - usermod, для удаления учетной записи - userdel.


Рис. 4.1.  Окно программы admintool



Группы пользователей


Все группы, определенные в системе, перечислены в файле /etc/group.

cat /etc/group root::0:root other::1: bin::2:root,bin,daemon sys::3:root,bin,sys,adm adm::4:root,adm,daemon uucp::5:root,uucp mail::6:root tty::7:root,adm lp::8:root,lp,adm nuucp::9:root,nuucp staff::10: daemon::12:root,daemon sysadmin::14: smmsp::25:smmsp nobody::60001: noaccess::60002: nogroup::65534:

Первое поле - имя группы.

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

Третье поле - идентификатор группы (GID). Этот идентификатор должен быть уникальным в пределах системы, а в случае использования общих файлов групп и паролей - в пределах всей сети организации. Номера от 0 до 99 и от 60001 до 60002 зарезервированы для системных групп. Создавайте свои группы с идентификаторами от 100 до 60000 включительно.

Четвертое поле - список пользователей через запятую; для этих пользователей данная группа будет являться дополнительной. В Solaris принято по умолчанию, что один пользователь может принадлежать не более чем к 15 дополнительным группам.



Каждый объект имеет владельца и группу


Любой файл, каталог или процесс имеет владельца и группу. Это означает, что файлу, каталогу и процессу обязательно сопоставлены два идентификатора, которые называются UID (User ID) и GID (Group ID) соответственно. Администрировать систему легче, если все объекты имеют UID и GID из числа представленных в /etc/passwd и /etc/group соответственно. "Бесхозные" объекты вносят сумятицу в стройные ряды прав доступа и делают права доступа к ним владельца и группы бессмысленными - ведь никто из пользователей не может получить "чужое" право доступа.



Концепция безопасности UNIX


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

В современных системах UNIX для большей гибкости при настройке прав доступа введены дополнительные свойства объектов, такие как флаги для файлов и каталогов, списки управления доступом (ACL) для файлов и каталогов, аутентификация и авторизация с использованием различных служб аутентификации, подобных TACACS и RADIUS, а также модули аутентификации и авторизации (Pluggable Authentication Modules - PAM). В этой книге TACACS и RADIUS не рассматриваются, а технология и настройки PAM обсуждаются в лекции 10 курса "Администрирование ОС Solaris".

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

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



Назначение прав доступа поотдельности


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

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



Не распознается сетевая карта


Еще на начальном этапе установки DCA (вы, конечно, помните, DCA - это Device Configuration Assistant, программа, которая определяет, что за оборудование установлено в компьютер, и помогает обнаружить новые устройства) легко определил вашу сетевую карту, и вы до самого конца установки пребывали в уверенности, что Solaris ее поддерживает. Не тут-то было! Никакой сетевой карты после установки Solaris не видит, и все настройки сети отправились коту под хвост! Что можно сделать в этом случае?

Возможно, следует поменять сетевую карту. Однако для NE2000-совместимых карт можно попробовать менее сложный способ. Правда, покажется ли он вам менее сложным к концу следующей страницы?

В Solaris для драйвера каждого устройства существует конфигурационный файл, в котором указано, какие адреса портов и прерывания использует соответствующее устройство. Конфигурационный файл может содержать одни комментарии, тогда драйвер будет использовать значения по умолчанию. Однако файл конфигурации должен присутствовать в любом случае. Файлы конфигурации расположены в файлах /kernel/drv/*.conf и /platform/i86pc/kernel/drv/*.conf.

Мы уже предположили, что у нас есть cетевой адаптер, совместимый с NE2000. Обычно эти адаптеры имеют диапазон адресов портов от 0x240 до 0x360. Но Solaris по умолчанию не ищет адаптер с адресом больше 0x300, так как NE2000 может конфликтовать с другими устройствами. Стало быть, для того чтобы Solaris мог работать с адаптером NE2000 на 0x320, следует изменить файл конфигурации, предварительно удостоверившись в том, что аппаратных конфликтов при этом не будет.

В Solaris файл устройства и драйвер для семейства адаптеров, совместимых с NE2000, принято называть nei. В некоторых системах этот драйвер просто выключен по умолчанию.

Для изменения параметров, используемых драйвером, в нашем случае понадобится изменить файл /kernel/drv/nei.conf. Возможно, вместо этого придется менять файл /platform/i86pc/kernel/drv/nei.conf, в зависимости от системы. Иногда файлы *.conf с одинаковыми именами есть в обоих каталогах - тогда, как показывает практика, лучше использовать каталог /platform/i86pc/kernel/drv/. Для платформы, отличной от x86, следует выбрать каталог, соответствующий платформе. В файле *.conf должно быть нечто вроде:


name="nei" parent="isa" reg=0x1,0x320,0x1f interrupts=11;

Здесь name="nei" обозначает символическое имя, которое будет иметь файл устройства в каталоге /dev. Параметр parent="isa" означает тип шины. Здесь тип ISA включает и шину PCI, что может поначалу ввести в заблуждение. Для Solaris этот параметр равен либо sysbus (это системная шина SPARC), либо isa, что означает любую шину, кроме SPARC sysbus. Флаг "0x1" означает, что далее идет определение диапазона I/O портов, а не смещения в памяти; 0x320 показывает начальный I/O адрес в шестнадцатеричном виде; 0x1f есть размер диапазона портов ввода-вывода от начального адреса; "interrupts=11" показывает IRQ 11 в десятичном виде.

При выполнении подобной операции с файлом конфигурации драйвера другого устройства попробуйте команды

grep conf /kernel/drv/*.conf

и

grep conf /platform/`uname -m`/kernel/drv/*.conf

чтобы выяснить, как называется нужный файл.

Выключите компьютер и (если требуется) измените адрес перемычками на сетевом адаптере. После перезагрузки система должна увидеть карту. Для карт "plug and play" следует отключить функцию самонастройки и установить конкретные номер порта и IRQ.

При добавлении ранее неизвестного системе сетевого адаптера необходимо также создать файл /etc/hostname.nei0 и указать в нем IP-адреса. Это требуется для того, чтобы система увидела не только новое устройство, но и распознала в нем новый сетевой интерфейс. Также добавьте в /etc/hosts строчку, сопоставляющую имя данному интерфейсу, например:

10.1.1.1 mycomputer.domain.com

В этом примере предполагается, что файл /etc/hostname.nei0 содержит адрес 10.1.1.1.

Для того чтобы в каталогах /devices и /dev гарантированно были нужные файлы нового устройства, дайте команду devfsadm (для Solaris 8 и более ранних версий - drvconfig):

devfsadm

или

/usr/sbin/drvconfig -i nei

Эта команда выполняется автоматически при добавлении нового устройства с помощью команды add_drv во время следующей перезагрузки системы. Подробнее о добавлении устройств говорится в лекции 12.

Далее наберите touch /reconfigure; reboot (это можно делать только как root).

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

ifconfig nei0 plumb

Строка nei0 должна появиться в выводе программы prtconf.


Неожиданное прерывание установки


Если установка системы прервалась на этапе копирования файлов, когда разделы диска уже определены, можно запустить ее заново командой /sbin/cd0_install. Часть настроек придется повторить. Это возможно только в том случае, если в результате прерывания установки вы видите стандартное приглашение к вводу команд в командной строке, вот такое:

#



Невозможность работы в графическом режиме


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

Попробуйте нажать Ctrl-C, возможно, программа kdmconfig будет аварийно завершена и установку можно будет продолжить.

Если это не помогло, придется устанавливать систему заново с указанием правильных параметров видеоадаптера и монитора программе kdmconfig. В случае, если Solaris не поддерживает установленное у вас в компьютере видеооборудование (например, очень старая или весьма оригинальная видеокарта), то следует либо выбрать минимальный вариант видеоадаптера (VGA, 16 цветов, 60 Гц развертка), либо отказаться от работы в графическом режиме и вообще не запускать графическую среду Solaris. В последнем случае возможным выходом явится установка системы с помощью программы suninstall.



Невозможность войти под именем root


С именем root запрещено входить в систему интерактивно через сеть или подсоединяться к ней по протоколу ftp. Однако если пароль root забыт или неизвестен, следует обнулить этот пароль так, чтобы он стал пустым. Методика этого процесса описана в лекции 1. Помните, что для этого требуется физический доступ к компьютеру под управлением Solaris, удаленно сбросить пароль root невозможно. Поэтому не следует бояться, что злонамеренные хакеры воспользуются описанным способом без вашего ведома. С другой стороны, следует ограничить доступ к компьютеру посторонних людей!



Объект


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



Отличия установки Solaris на компьютеры SPARC


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

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

Во-вторых, для установки на платформе Intel недоступен способ Factory JumpStart.

В-третьих, установка на системы SPARC начинается со взаимодействия с firmware - встроенным в ПЗУ программным обеспечением компьютера, которое производит загрузку установочной программы с компакт-диска, ленты, через сеть с NFS-сервера и т.п. Для установки Solaris на компьютер архитектуры x86 проще всего использовать загрузочный компакт-диск из дистрибутива.

В-четвертых, на компьютеры SPARC устанавливается 64-битная версия Solaris, которая не может работать с 32-битной архитектурой x86.

Solaris 9 специально создана для компьютеров SPARC, поэтому возможных проблем при установке на эти компьютеры неизмеримо меньше. Например, практически исключена несовместимость оборудования и ПО. Именно поэтому далее речь будет идти о трудностях, которые можно встретить при установке Solaris 9 на компьютеры x86.



Отсутствие поддержки DMA


В процессе копирования mini-root на жесткий диск может появиться ошибка, информация о которой выглядит так: вначале несколько раз повторяется сообщение1)

Warning: /pci@0,0/pci-ide@7,1/ide@0 (ata0) timeout : abort request, target=0 lun=0

а затем копирование прекращается с сообщением об ошибке:

Warning: /pci@0,0/pci-ide@7,1/cmdk@0,0 (Disk 0) Error for command 'read sector'. Error level 'Informational' Sense Key: aborted command Vendor 'Gen-ATA' error code: 0x3

Это говорит о том, что система не смогла корректно работать с ATA DMA (Direct Memory Access) в вашем компьютере и поддержку ATA DMA в Solaris (а не в BIOS!) следует отключить. Для этого надо:

Запустить установку заново.После того как DCA определит, какие устройства есть в системе и загрузит соответствующие драйверы, появится экран с вопросом о том, какой диск является загрузочным (в заголовке экрана будет написано Boot Solaris). Выбрать Boot Tasks (нажав F4).Появится экран Boot Tasks, там следует выбрать View/Edit Property Settings.Найти в появившемся списке свойств ata-dma-enabled.Присвоить этому параметру значение 0.Выбрать возврат к предыдущему экрану (Back), нажав F2.Возвратиться к экрану Boot Solaris, нажав F3.Продолжить установку системы, как было показано ранее.

Надо отметить, что в Solaris 8 x86 поддержка ATA DMA по умолчанию была выключена. В Solaris 9 умолчание изменили: теперь поддержка ATA DMA включена по умолчанию.

Есть данные, говорящие о том, что Solаris 8 x86 при установленном в DCA параметре ata-dma-enabled=1 корректно работал с приводами ATAPI CDROM/DVD-ROM, в отличие от Solaris 9 x86, который не использует DMA для этих устройств.



Пользовательские файлы конфигурации


У каждого пользователя в домашнем каталоге есть несколько файлов конфигурации. Обычно присутствуют файлы конфигурации командного процессора. Если в системе используется несколько командных процессоров, имеет смысл сделать файлы конфигурации для каждого из них (о файлах конфигурации командных процессоров см. лекцию 10). Кроме того, могут быть файлы конфигурации графической среды (.Xsession и другие), файлы конфигурации почтовой системы (.elm, .forward и другие), файлы с историей команд (.history, .bash_history) и прочие. Их объединяет то, что их имена практически всегда начинаются с символа "." (точка). Можно увидеть их в списке файлов каталога, если дать команду

ls -a

Пользовательские файлы конфигураций создаются заранее системным администратором. Стандартные пользовательские файлы конфигураций по умолчанию поставляются вместе с операционной системой и в Solaris располагаются в /etc/skel (от слова skeleton - скелет, т.е. основа). При добавлении в систему нового пользователя они автоматически копируются из каталога /etc/skel в домашний каталог нового пользователя. При добавлении нового пользователя или модификации существующей учетной записи можно указать другой каталог с файлами конфигурации, чтобы копировать не файлы по умолчанию, а другие файлы. Их предварительно следует создать и модифицировать в соответствии с настройками, которые требуется установить для новых пользователей.

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

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



Программы управления учетными записями пользователей


Для управления учетными записями можно использовать программу admintool при работе в графическом режиме или программы useradd, usermod, userdel, groupadd, groupmod, groupdel в текстовом режиме или в окне терминала.



Разделение всех пользователей по отношению к объекту


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

Обратите внимание: для системы важны не имена пользователей, а их идентификаторы. Допустим, что в чужой системе есть пользователь ivan с UID, равным 1000, а в нашей ivan имеет UID, равный 2001. Тогда при переносе файла с чужой системы к нам с сохранением информации о владельце файла, в нашей системе появится "бесхозный" файл, если у нас нет пользователя с UID 1000, или принадлежащий тому пользователю, чей это UID, если такой найдется.

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

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

Любой объект имеет не только владельца, но и группу. Иногда владельца называют "хозяином", а группу - "группой владельца", "групповым владельцем", "групповым хозяином" и т.п. Смысл этого понятия в том, что каждому объекту в UNIX сопоставляется не только UID (User IDentificator), который идентифицирует владельца объекта, но и GID (Group IDentificator), который идентифицирует группу пользователей, имеющую особые права на объект.

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



Русификация Solaris


Solaris 9 имеет встроенную поддержку русского языка во всех кодировках, включая кодировку Unicode (UTF-8). Поэтому все поставляющиеся с системой программы корректно работают с русским языком. Для корректной работы клавиатурного переключателя языков и программы Netscape Navigator следует при установке системы выбирать вариант локализации RU.UTF-8.

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

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

При установленной локализации RU.UTF-8 (Unicode) переключение с английского алфавита на русский при вводе текста осуществляется нажатием клавиш Compose+c, c. Клавиша Compose на стандартной 104-клавишной клавиатуре находится между клавишей "Win" и правой клавишей "Control". Нажатие Compose+c, с означает, что сначала вы нажимаете одновременно клавиши "Compose" и "с", а затем, отпустив их, однократно нажимаете клавишу "c". Для обратного переключения языка ввода на английский следует нажать Ctrl-пробел.



Сброс конфигурации системы


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

sys-unconfig

Сбрасываемая информация о настройках включает в себя имя хоста, имя домена NIS, часовой пояс, IP-адреса интерфейсов, маску сети и пароль root. То, что делает sys-unconfig, является операцией, обратной по отношению к тому, что выполняют программы sysidnet, sysidns и sysidsys. Более детальная информация об этих программах находится на соответствующих страницах руководства по sysidtool.

Программа sys-unconfig:

записывает /etc/inet/hosts в /etc/inet/hosts.saved;если /etc/vfstab содержит файловые системы, монтируемые по NFS, копирует /etc/vfstab в /etc/vfstab.orig;восстанавливает в первоначальное состояние /etc/inet/hosts (как было сразу после установки системы);удаляет имя хоста из файлов /etc/hostname.interface для всех настроенных к этому моменту интерфейсов (тех, что показывает команда ifconfig -a), за исключением файла локального интерфейса петли (lo0);удаляет имя домена из /etc/defaultdomain;устанавливает часовой пояс в значение PST8PDT в /etc/TIMEZONE;отменяет работу NIS и NIS+, если они были настроены;удаляет упоминания данного хоста в /etc/net/*/hosts;удаляет файл /etc/inet/netmasks;удаляет файл /etc/defaultrouter;удаляет пароль root из /etc/shadow;удаляет файл /etc/.rootkey;запускает все программы конфигурации системы (см. man sysidconfig) c ключом -u;удаляет файл /etc/resolv.conf;

удаляет файлы, относящиеся к LDAP, отменяя работу LDAP:

/var/ldap/ldap_client_cache, /var/ldap/ldap_client_file, /var/ldap/ldap_client_cred, /var/ldap/cachemgr.log.

По окончании работы sys-unconfig выполняет остановку системы. После перезагрузки потребуется настроить систему заново.



Структура файлов /etc/passwd, /etc/shadow, /etc/group


Файлы /etc/passwd и /etc/group в Solaris имеют такой же формат, как и в других системах UNIX, а файл /etc/shadow одинаков для всех систем ветви System V. Рассмотрим примеры файлов (для этого потребуется воспользоваться командой cat или командой more):



Учетные записи пользователей


cat /etc/passwd root:x:0:1:Super-User:/:/sbin/sh daemon:x:1:1::/: bin:x:2:2::/usr/bin: sys:x:3:3::/: adm:x:4:4:Admin:/var/adm: lp:x:71:8:Line Printer Admin:/usr/spool/lp: uucp:x:5:5:uucp Admin:/usr/lib/uucp: smmsp:x:25:25:SendMail Message Submission Program:/: listen:x:37:4:Network Admin:/usr/net/nls: nobody:x:60001:60001:Nobody:/: noaccess:x:60002:60002:No Access User:/: nobody4:x:65534:65534:SunOS 4.x Nobody:/: col:x:100:1::/home/col:/bin/sh temp:x:101:1::/home/temp:/bin/sh qaz:x:102:1::/home/qaz:/bin/sh Termos:x:103:1::/home/Termos:/usr/bin/bash

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

Первое поле - имя пользователя в системе. Это имя пользователь вводит для входа в систему. Имя в Solaris должно иметь длину от 2 до 8 символов и содержать только латинские буквы и цифры. Имя пользователя в Solaris может содержать прописные латинские буквы, однако из соображений совместимости с другими системами UNIX рекомендуется использовать только строчные (маленькие) буквы.

Второе поле - признак наличия пароля. Пустое поле означает отсутствие пароля. Для фактического отсутствия пароля у пользователя необходимо, кроме того, чтобы второе поле в файле /etc/shadow в описании этого пользователя имело значение NP.

Третье поле - идентификатор пользователя, UID.

Четвертое поле - идентификатор главной группы пользователя, GID.

Пятое поле (иногда его называют GECOS) - описание пользователя. Обычно оно содержит полное имя пользователя (имя и фамилию) и координаты для связи с ним - номер офиса, адрес, телефон или пейджер.

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

Седьмое поле - командный процессор, который будет запущен для пользователя при интерактивном входе в систему. Некоторые сетевые службы (например, ftpd) требуют, чтобы у каждого пользователя, пытающегося получить доступ к сетевой службе, был существующий в системе на самом деле командный процессор. Файл /etc/shells описывает доступные в системе командные процессоры, которые следует назначать пользователям. Сразу после установки системы файл /etc/shells не образуется. Системный администратор должен создать его вручную, если он требуется для каких-то программ в системе, например, для ftpd.

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

Поле GECOS часто называют полем комментария, и это верно: в нем следует записывать контактную информацию о пользователе. Системному администратору ничего не скажет строка в файле протокола, свидетельствующая о проблеме, вызванной работой пользователя ikonst34. Кто это? Иван Константинович из планового отдела или Илья Константинов из технического? Или это Иконников Станислав из филиала 34? Чтобы не мучаться ассоциациями, навеянными именем пользователя, а точно знать, кто скрывается за лаконичным username, следует заполнять поле комментария.

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

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


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

Например, файл /etc/passwd может содержать такие записи:

root:*:0:0:Root - Michael Kruglov, room 601, 89119119111:/root:/bin/bash ftp:*:23:1:FTP Admin, Andrei Nezvanyi, 9733333:/home/ftp:/bin/bash apache:*:404:40:Web Master, Elena Osatanenko,1001010:/usr/local/httpd:/bin/sh

Каждая запись в файле /etc/passwd размещается на одной строке, здесь они перенесены из-за ограниченного размера страницы книги.

Последнее, что следует сказать о поле GECOS, это почему оно так называется.

В свое время компания General Electric владела компьютером, операционной системой которого была GECOS (General Electric Comprehensive Operating System). Компьютеры под управлением UNIX использовались для подготовки задач для этого компьютера. Изначально в поле комментария хранилась информация для запуска командных файлов и пакетных задач, которые были предназначены для системы GECOS:

cat /etc/shadow root::6445:::::: daemon:NP:6445:::::: bin:NP:6445:::::: sys:NP:6445:::::: adm:NP:6445:::::: lp:NP:6445:::::: uucp:NP:6445:::::: nuucp:NP:6445:::::: smmsp:NP:6445:::::: listen:*LK*::::::: nobody:NP:6445:::::: noaccess:NP:6445:::::: nobody4:NP:6445:::::: col:9NvfZSaIQgcQk:12435:::::: temp:*LK*::::::: qaz:v.srD227fHRx2:12448:::::: Termos:o3HzHXFopdwbU:::::::

Этот файл тоже описывает пользователей. В нем хранятся зашифрованные пароли пользователей. Формат файла таков:

Первое поле - имя пользователя.

Второе поле - зашифрованный пароль, *LK* означает, что учетная запись заблокирована (locked), а NP - что пароль отсутствует (no password).

Третье поле - число дней между 1 января 1970 года и датой последнего изменения пароля.

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

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

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

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

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

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

Данный формат /etc/shadow характерен как для Solaris, так и для других относящихся к System V систем UNIX, например, для Linux.

В /etc/shadow обязательно наличие только первых трех полей в каждой записи, остальные могут отсутствовать - все или часть из них. Рекомендуется вносить исправления в /etc/shadow не вручную, а с помощью программ admintool, usermod, useradd, passwd. Однако, в одном случае - когда забыт пароль root - придется исправлять /etc/shadow в текстовом редакторе.


Добавьте учетную запись пользователя lover


Добавьте учетную запись пользователя lover с помощью useradd. В какую группу попал пользователь lover? Изменился ли файл /etc/group? Объясните, почему.Удалите учетную запись lover с помощью admintool.Добавьте пользователя hardworker в группу staff с помощью admintool. Удалось ли добавить пользователя с таким именем? Если нет, выясните причину и, если потребуется, измените вызвавшее проблему условие.Измените главную группу этого пользователя на other, но сохраните его в качестве члена группы staff. Пришлось ли внести какие-то изменения в файл /etc/group?Изучите содержимое файла /etc/shadow. Установите новый пароль какому-нибудь пользователю. Изменилось ли содержимое /etc/shadow? А файла /etc/passwd?

Useradd


Для добавления нового пользователя следует выполнить команду useradd:

При этом пользователь попадает в группу other, если явно не указано иное. Эта группа имеет идентификатор 1.

При добавлении пользователя в Solaris происходит добавление соответствующей строки в файлы /etc/passwd, /etc/shadow и /etc/user_attr. Первые два файла нам уже знакомы. Последний служит для записи дополнительных атрибутов пользователя. Он используется только в Solaris, в других системах UNIX такого файла нет. К дополнительным атрибутам относятся административные права, данные этому пользователю, перечень ролей, назначенных ему, и указание на то, является ли эта учетная запись пользователя информацией о реальном пользователе или информацией о роли. Более подробно о ролях говорится в лекции 11 курса "Администрирование ОС Solaris", для получения детальной информации о /etc/user_attr - следует изучить man по user_attr.

По умолчанию useradd добавляет учетную запись пользователя в файлы /etc/passwd и /etc/shadow. Кроме этого, при указании ключа -G запись о пользователе помещается в /etc/group в строку тех групп, которые указываются в качестве дополнительных для него. С помощью ключа -m можно указать, что для пользователя следует создать домашний каталог.

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

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

Следующие ключи изменяют значения свойств учетной записи пользователя, которые задаются по умолчанию в отсутствие этих ключей:

-b base_dir - каталог, в котором должен быть создан домашний каталог пользователя; не требуется указывать, если используется ключ -d;-c comment - поле GECOS общей информации о пользователе, как минимум, следует указать полное имя пользователя;-d dir - домашний каталог пользователя; по умолчанию создается в каталоге /home и носит то же имя, что и пользователь (для пользователя lena создается домашний каталог /home/lena);


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

Таблица 4.1. Значения свойств учетной записи пользователя по умолчанию
ГруппаOther (GID =1)
Каталог с домашними каталогами пользователей/home
Командный процессор/bin/sh
Профильне назначается
Рольне назначается
-e expire - дата истечения срока действия учетной записи; формат даты определен, как указано в man 3C getdate; по умолчанию не задано, после наступления этой даты пользователь не сможет войти в систему; используется для создания учетных записей временных сотрудников или гостей;-f inactive - максимальное число дней, в течение которых пользователь может не входить в систему, по истечении этого срока учетная запись блокируется; удачное решение для забывчивых системных администраторов, которые не удаляют учетные записи при увольнении сотрудника, позволяет бороться с накоплением "мертвых душ" в системе;-g group - группа пользователя, по умолчанию - other; подробности настройки групп по умолчанию - в man useradd;-k skel_dir - каталог с базовыми пользовательскими файлами конфигураций, указанный каталог должен существовать, копии всех содержащихся в нем файлов будут помещены в домашний каталог нового пользователя. По умолчанию - /etc/skel;-m - требует создать домашний каталог нового пользователя; если каталог уже есть, у главной группы пользователя должно быть право на чтение, запись и поиск в этом каталоге (права доступа к файлам и каталогам обсуждаются в лекции 6);-o- разрешить пользователю иметь UID, совпадающий с UID существующего пользователя; может применяться для дублирования учетной записи root. Это может понадобиться для того, чтобы от имени пользователя root входить в систему только в экстренных случаях, а обычно пользоваться другой учетной записью. Во FreeBSD для этого по умолчанию предоставляется учетная запись toor (root наоборот). Это может быть удобно для назначения администратору командного процессора, отличного от /bin/sh, например /usr/local/bin/bash. Назначить такой командный процессор пользователю root нельзя, т.к. его командный процессор должен работать даже тогда, когда доступна только файловая система /, а /usr даже не смонтирована;-s shell - полное имя файла, который будет назначен пользователю в качестве командного процессора при входе в систему; файл должен существовать;-u uid - явное указание значения UID.



Ряд ключей, служащих для управления ролями, обсуждается в лекции 11 курса "Администрирование ОС Solaris".

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

usermod ivan UX: usermod: ERROR: Invalid syntax. usage: usermod -u uid [-o] | -g group | -G group[[,group]...] | -d dir [-m] | -s shell | -c comment | -l new_logname | -f inactive | -e expire -A authorization [, authorization ...] | -P profile [, profile ...] | -R role [, role ...] login

Для удаления пользователя используйте userdel.

Для добавления группы следует использовать groupadd, для удаления - groupdel; для изменения учетной записи группы - groupmod.


Зачем распределять пользователей по группам?


Как уже говорилось в лекции 1, в Solaris есть ряд предопределенных групп. Большинство из них созданы для запуска системных процессов от имени этих групп. Но одна из групп - staff - предназначена для того, чтобы ее членами были все обычные пользователи, которым разрешена интерактивная работа с системой Solaris. Некоторые приложения (например, sendmail или СУБД Oracle) требует создания специфических групп с определенными именами. При необходимости вы можете создать новую группу и назначить ее в качестве главной или дополнительной группы тем пользователям, которым следует делегировать одинаковые права.

Группа staff часто является главной группой большинства пользователей.

При добавлении пользователя с помощью команды useradd пользователь попадает в группу other, если явно не указано иное. Эта группа имеет идентификатор 1.

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

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

Представьте: после четвертой чашки кофе ваш взгляд упирается в файл /etc/passwd и в мозгу начинает неотвязно биться мысль: нет ли в системе лишних пользователей? Может быть, завалялись какие-нибудь устаревшие учетные записи и их можно вычистить? Открыв /etc/passwd, вы видите несколько сотен пользователей, полтора года назад отнесенных к группе pop3. Ага, догадываетесь вы, эти забирают почту с нашего сервера. А вот эти, из группы oldlamer, что тут делают?

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