Европейский Университет в Санкт-Петербурге
Опубликован: 04.07.2008 | Доступ: свободный | Студентов: 1320 / 264 | Оценка: 4.34 / 3.65 | Длительность: 21:13:00
Лекция 1:

Для начинающих работать в UNIX

Лекция 1: 1234 || Лекция 2 >

Быстрый взгляд внутрь UNIX

В любой системе UNIX есть ядро, системные библиотеки, системные службы и служебные утилиты. Solaris в этом смысле подобен другим системам UNIX. Solaris – это многоплатформенная ОС, работающая с архитектурами SPARC (это – 64-разрядная архитектура) и x86 (32- и 64-разрядными). Эта система разработана компанией Sun Microsystems; история системы началась в 1992 году, когда Sun объявила о создании принципиально новой версии системы SunOS, которая получила имя Solaris.

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

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

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

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

/kernel /usr/kernel

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

/platform/<platform-name>/kernel /platform/<hardware-class-name>/
kernel /kernel /usr/kernel

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

uname -i

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

uname -p

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

man -s 4 system

В системах, работающих на процессорах SPARC, файл unix называется /platform/`uname -i`/kernel/sparcv9/unix. Когда загрузчик поместит оба этих файла (genunix и unix) в память, они становятся одним целым – ядром. Затем это ядро загружает модули.

Подробнее о процессе загрузки рассказывает "Запуск и остановка системы" .

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

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

В разных системах UNIX используются разные файловые системы, причем часто система поддерживает несколько разных файловых систем. Например, Linux умеет работать с ext2, ext3 (это ее родные файловые системы), UFS, HPFS, NTFS, FAT и другими. Solaris, как и некоторые другие ОС UNIX, использует файловую систему типа UFS. В Solaris 10 впервые в мире была реализована поддержка новой транзакционной 128-разрядной файловой системы ZFS. О системе ZFS более подробно рассказано в "Концепция, устройство и администрирование файловой системы ZFS" .

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

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

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

Ядро представляет собой отдельный процесс, выполняющийся с наивысшим приоритетом. В большинстве систем UNIX, включая Solaris, реализована возможность выполнения несколько параллельных подпроцессов внутри процесса. Эти подпроцессы называют потоками (threads). Более подробно этот аспект процессов рассмотрен в "Управление процессами" .

Каждый пользователь в UNIX имеет свою собственную учетную запись пользователя (account). Она содержит имя пользователя, пароль, идентификатор пользователя (UID), идентификатор главной группы пользователя (GID), описание пользователя, его домашний каталог и путь к командному процессору, который следует запустить при интерактивном входе пользователя в систему.

Пользователь, работающий в UNIX, имеет уникальное имя пользователя и уникальный идентификатор. Идентификатор пользователя (User ID, UID) – это целое число от 0 до 2147483647. Обычные пользователи в Solaris имеют идентификатор в диапазоне от 100 до 60000, а пользователи с идентификаторами со значениями выше 60000 имеют различные ограничения при работе, поэтому реальным пользователям эти идентификаторы, как правило, не назначают.

Пользователю не надо знать свой идентификатор, потому что он используется только системой; для входа в систему пользователь указывает свое имя (username). Имя пользователя может состоять из латинских букв и цифр; длина имени должна быть от 1 до 8 символов. Первый символ должен быть буквой, и по крайней мере один символ должен быть буквой нижнего регистра. Имя пользователя назначает системный администратор при создании новой учетной записи. Имя пользователя в руководствах часто называют "логин" (login) или "username".

Пользователи объединены в группы. Каждая группа имеет свое имя и уникальный идентификатор (Group ID, GID). В группе может быть сколько угодно пользователей, и каждый из них может быть участником любого количества групп. Однако у каждого пользователя есть главная группа – она указывается в свойствах любого файла, который создает пользователь. Идентификатор группы имеет значение от 100 до 60000, если только это не специальная группа. Для специальных (предопределенных) групп зарезервирован диапазон от 0 до 99.

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

Предположим, что эти ответственные – пользователи ivan, lena и kira. Тогда в файл /etc/group следует добавить новую группу:

webedit::101:ivan,lena,kira

Концепция прав доступа в UNIX требует объединять пользователей в группы всегда, когда нужно предоставить одинаковые права доступа к файлам или каталогам группе людей. Разумеется, в Solaris 10 есть и графический интерфейс для создания и модификации состава групп – редактировать /etc/group в текстовом редакторе не обязательно.

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

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

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

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

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

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

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

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

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

Лекция 1: 1234 || Лекция 2 >
Александр Тагильцев
Александр Тагильцев

Где проводится профессиональная переподготовка "Системное администрирование Windows"? Что-то я не совсем понял как проводится обучение.