Введение в администрирование ОС Solaris 10

Изменение настроек системы для начинающих

Показывать лекцию целиком

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

Изучение руководства по системе

Невозможно ни изучать, ни управлять 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.1 перечислены разделы руководства, к которым обращается man. В BSD и System V руководства организованы немного по-разному.

Раздел System V BSD
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 ).

Более подробно об организации страниц руководства, о поиске информации о системе и ее инструментах рассказано в лекции 10.

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

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

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

Настройки графической среды

Настройка графической среды в GNOME сводится к настройкам параметров экрана и настройкам вида рабочего стола. Настройка рабочего стола тривиальна; единственный тонкий момент – это модификация панели задач внизу экрана. Для того, чтобы добавить на нее элемент, надо щелкнуть по свободной части панели правой клавишей мыши и действовать, выбирая пункты контекстного меню (рис 2.1). Для изменения разрешения экрана следует щелкнуть правой клавишей мыши по рабочему столу и далее выбрать в контекстном меню "Screen Resolution" (рис 2.2). Как видно на рисунке, из этого же контекстного меню можно установить фон рабочего стола и запустить эмулятор терминала ( gnome-terminal ).

(рис 2.1) Добавление апплета на панель задач в GNOME (рис 2.2) Контекстное меню свойств рабочего стола в GNOME

Настройки сети

Настройки сети в Solaris лучше всего оставить программе-установщику системы. Однако при надобности их модифицировать можно воспользоваться различными способами. Во-первых, можно из командной строки отредактировать файлы /etc/hosts, /etc/resolv.conf и выполнить настройку интерфейсов командой ifconfig. Если вы – обычный пользователь, не имеющий опыта администрирования UNIX, этот путь потребует от вас приобретения новых знаний – о сетевых интерфейсах, адресах, редактировании файлов настроек и т.п. Поэтому, чтобы автоматизировать процесс настройки, можно воспользоваться программой inetmenu. В новых версиях Solaris 10 (начиная с Solaris 08/07 или, что то же самое, Solaris 10 update 4) для этого следует использовать службу NWAM. Подробнее о настройках сети рассказано в лекции 3 курса "Системное администрирование ОС Solaris 10".

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

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

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

ifconfig -a

Среди интерфейсов, которые показывает эта команда, обязательно будет интерфейс lo0, который является "внутренним", "локальным" сетевым интерфейсом – через него сетевое приложение, работающее на вашем компьютере, может обратиться к другому сетевому приложению, работающему на том же самом компьютере. Этот локальный интерфейс не требует настройки.

Здесь мы приведем описание настройки сети только с помощью inetmenu, как самой простой.

Прежде всего, запустите inetmenu. После запуска вы увидите список сетевых интерфейсов и выберите один из них. Локальный интерфейс lo0 программа inetmenu не показывает. Возможно, список будет состоять из одного элемента – если ваш компьютер имеет один физический сетевой интерфейс. Имя интерфейса может быть разным и зависит от типа сетевого адаптера, который у вас установлен. Если интерфейсов несколько (скажем, есть проводной и беспроводной интерфейсы), то в списке будут содержаться и те, и другие.

Проводное соединение (Ethernet)

Интерфейс, представляющий собой сетевой адаптер, может называться qme0, bge0 или иначе – в зависимости от модели адаптера. После выбора интерфейса в программе inetmenu потребуется выбрать тип настройки: deconfigure (следует выбирать, когда требуется отменить предыдущую настройку), DHCP (автоматическая настройка), Static address (статический, т.е. постоянный адрес) и, возможно, иные варианты, если они предусмотрены файлом конфигурации inetmenu. Подробнее о конфигурации inetmenu рассказано в лекции 3 курса "Системное администрирование ОС Solaris 10". Если у вас есть параметры настройки статического адреса, воспользуйтесь ими; если в вашей сети принята динамическая настройка, выберите DHCP.

После того, как вы сделаете выбор, программа inetmenu сама вызовет ifconfig с необходимыми параметрами (вы можете потом посмотреть, как именно настроен интерфейс с помощью уже знакомой вам команды ifconfig -a ), модифицирует файлы /etc/hosts и /etc/resolv.conf.

Беспроводное соединение (wi-fi)

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

wificonfig scan

Может оказаться, что в наличии есть несколько точек доступа с разными именами сетей. Какую выбрать? Если вы точно знаете имя и (необязательно) пароль доступа к одной из сетей, выбирайте именно ее. Если не знаете – пробуйте все имеющиеся беспарольные. Иногда сеть, предоставляющая доступ без пароля, оказывается платной. В этом случае о порядке оплаты следует спросить знающих людей вокруг или персонал того места, где вы находитесь. В цивилизованных странах корректно настроенная платная сеть обычно сообщает вам об условиях подключения, как только вы подключитесь к ней и попытаетесь просмотреть любую страницу в Интернете.

При запуске inetmenu для настройки беспроводного доступа следует выбрать адаптер беспроводного доступа из списка сетевых адаптеров (вероятно, он будет называться ath0). После этого inetmenu покажет список доступных сетей, вы выберите одну из них, и после этого, возможно, придется ввести пароль на доступ к ней. Затем появится такое же меню выбора конфигурации, что и для проводной сети, с возможностью выбрать DHCP и другие варианты настройки. Беспроводные адаптеры в подавляющем большинстве случаев настраиваются с помощью DHCP.

После выбора варианта настройки inetmenu подключит вас к выбранной сети с помощью вызова программы wificonfig и внесет изменения в файлы /etc/hosts и /etc/resolv.conf, а также вызовет ifconfig для настройки беспроводного интерфейса. Вы можете посмотреть результаты настройки командой ifconfig -a, а также посмотреть параметры подключения к беспроводной сети с помощью команды wificonfig status.

Если в вашей системе разрешена работа службы NWAM, то настройка беспроводной сети будет выглядеть похоже на настройку с помощью inetmenu, но все произойдет автоматически – запускать какие-либо программы не придется. О настройке с помощью NWAM рассказано подробнее в лекции 3 курса "Системное администрирование ОС Solaris 10".

Администратор системы (привилегированный пользователь)

Администратором, т.е. пользователем, наделенным всеми возможными правами в системе, во всех диалектах UNIX, включая Solaris, является пользователь с именем root и идентификатором (UID), равным нулю. Этого пользователя также иногда называют суперпользователем (superuser). Он имеет неограниченные права на доступ к любому объекту в системе.

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

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

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

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

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

Оба этих способа не идеальны: первый в силу размазывания ответственности, второй – из-за ограниченности возможностей sudo.

В Solaris начиная с версии 8 была введена система управления доступом, основанная на ролях (RBAC – role-based access control). Она подразумевает создание большего количества ролей, чем всего один суперпользователь. Каждая роль может обладать строго определенным набором привилегий, позволяющих ей выполнить то или иное действие, связанное с безопасностью системы – скажем, только добавлять пользователей или только подключаться к беспроводной сети. Дарованная роли привилегия может охватывать широкий спектр действий или предполагать разные пути их выполнения. Например, добавление пользователей может происходить в командной строке командой useradd или через программу графического интерфейса smc.

Более подробно о ролевом управлении доступом рассказано в лекции 9 курса "Системное администрирование ОС Solaris 10".

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

Всегда помните о том, что система беззащитна перед человеком, знающим пароль администратора (т.е. пароль пользователя root). Поэтому:

  • не работайте в системе от имени root, если вам не надо настраивать систему; набор текстов или разработка программ при работе от имени root – признак разгильдяйства сисадмина;
  • не работайте от имени root будучи в подпитии или с похмелья; это – совершенно серьезно, потому что работая от root, легко по неосторожности удалить важные данные или внести необратимые изменения в систему – вы же не повезете родных из гостей домой на своей машине, если уже выпили граммов по триста водочки?
  • всегда делайте резервные копии важной информации;Лирическое отступление по поводу важной информации: однажды один из авторов этой книги был уверен, что в его системе все важные данные ежедневно копируются на удаленный сервер, а там усидчивый коллега обеспечивает их ежедневную запись на ленту. В один весьма далекий от прекрасности момент случилось неприятное: по неосторожности было стерто содержимое одного раздела диска. "Что ж, бывает", – подумал автор и занялся восстановлением данных, копируя их с удаленного сервера. Каково же было его удивление, когда часть данных оказалось невозможным восстановить – их не было на сервере. Выяснилось, что один важный каталог не попал в список того, что копируется ежедневно... "Ладно", – подумал автор и обратился к усидчивому администратору удаленного сервера за лентой, поскольку на нее раз в квартал копировалось вообще все. И тут случилось самое забавное: оказалось, что на ленту уже полгода как ничего не копируется, и об этом усидчивый администратор никому не сказал. А важный каталог был достаточно свежим, чтобы его не оказалось на более старой ленте.

    Мораль истории в том, что при организации резервного копирования (1) обязательно убедитесь в том, что вы делаете резервную копию всей важной информации (и каталога /etc , и каталогов настроек пользователей – всяких там .mozilla из домашних каталогов, и вспомогательных скриптов, написанных вами самими и положенных куда-нибудь в /usr/scripts ) и (2) надейтесь только на себя, всегда проверяйте, соблюдаются ли установленные в компании правила резервного копирования; следите за тем, что делаете сами и проверяйте то, что делают ваши коллеги и подчиненные – если от них зависит то, за что вы отвечаете перед Богом и людьми.

  • передавайте пароль root только тем коллегам, которым доверяете больше, чем себе; и даже в этом случае, как только их доступ к системе с администраторскими полномочиями более не требуется, меняйте пароль root;
  • меняйте пароль root регулярно, делайте его достаточно сложным. Пароль Jrcfyf плохой, потому что он легко отгадывается подбором по словарю, в котором русские слова написаны нажатием соответствующих клавиш без переключения языка на русский – такие словари созданы уже много лет назад. Пароль должен быть достаточно длинным, но помните о том, что во многих UNIX из соображений совместимости фактически во внимание принимается 8 первых символов пароля. Примером хорошего пароля является K?3085/j – в нем используется случайное сочетание символов латинского алфавита разных регистров, знаков препинания и цифр. Кажущаяся трудность запоминания такого пароля – это иллюзия, на самом деле средний человек способен запомнить любое сочетание восьми символов, просто набрав его несколько раз на клавиатуре;
  • пользуйтесь ролевым управлением доступом в Solaris – это мощное подспорье тем серьезным администраторам, которые понимают вред распространения пароля root среди нескольких человек одновременно;
  • никогда не запускайте скрипты, полученные из Сети, от имени root (так, например, незачем запускать скрипт configure от имени root при установке нового приложения).
  • Управление пользователями

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

    Для выполнения этих же действий можно использовать программу Solaris Management Console ( smc ), которая имеет оконный интерфейс и вызывается командой smc или /usr/sadm/bin/smc либо запускается посредством двойного щелчка мыши по соответствующей записи в папке /usr/sadm/bin. При работе в GNOME можно вызвать /usr/bin/users-admin из меню Administration->Users and Groups

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

    Об управлении пользователями и программе smc более подробно рассказано в лекции 5.

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

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

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

    В Solaris предопределенными являются пользователи, перечисленные ниже (список корректен для версий Solaris 9 и 10, жирным шрифтом выделены пользователи, которые есть только в Solaris 10) :

    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:
    nuucp:x:9:9:uucp Admin:/var/spool/uucppublic:/usr/lib/uucp/uucico
    smmsp:x:25:25:SendMail Message Submission Program:/:
    listen:x:37:4:Network Admin:/usr/net/nls:
    gdm:x:50:50:GDM Reserved UID:/:
    webservd:x:80:80:WebServer Reserved UID:/:
    postgres:x:90:90:PostgreSQL Reserved UID:/:/usr/bin/pfksh
    nobody:x:60001:60001:Nobody:/:
    noaccess:x:60002:60002:No Access User:/:
    nobody4:x:65534:65534:SunOS 4.x Nobody:/:

    К предопределенным группам относятся следующие группы (список корректен для версий Solaris 9 и 10, жирным шрифтом выделены группы, которые есть только в Solaris 10):

    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
    gdm::50:
    webservd::80:
    postgres::90:
    nobody::60001:
    noaccess::60002:
    nogroup::65534:

    Другие настройки

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

    Где хранятся настройки Solaris

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

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

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

    Что делать, если забыт пароль администратора

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

    passwd user

    или с помощью программы smc (в графическом режиме). Изменить пароль любого пользователя может только root. Если же забыт пароль root, то следует загрузить Solaris с другого носителя, смонтировать раздел, на котором находится файл /etc/shadow злополучного экземпляра системы, и удалить поле пароля (между первым и вторым двоеточиями) в строке, соответствующей пользователю root. Затем следует перезагрузить систему, войти под именем root и установить новый пароль администратора командой passwd root.

    Смонтировать раздел вы сможете, загрузившись с дистрибутивного DVD-диска Solaris или Solaris Express или указав cdrom в качестве источника монтирования (для систем SPARC):

    boot cdrom –s

    Современная программа установки Solaris на платформе x86 (проверялось на Solaris Express Developer Edition 1/08) при обнаружении существующего раздела Solaris на диске предлагает его смонтировать как /a. Можно воспользоваться этим любезным предложением и после этого заняться редактированием файла /a/etc/shadow, как рассказано выше.

    Вернуться к учебному плану