Введение в Unix
Введение в Unix
За время, прошедшее с момента ее появления в 1969 году, система UNIX стала довольно популярной и получила распространение на машинах с различной мощностью обработки, от микропроцессоров до больших ЭВМ, обеспечивая на них общие условия выполнения программ.
Система делится на две части. Одну часть составляют программы и сервисные функции, то, что делает операционную среду UNIX такой популярной; эта часть легко доступна пользователям, она включает такие программы, как командный процессор, обмен сообщениями, пакеты обработки текстов и системы обработки исходных текстов программ. Другая часть включает в себя собственно операционную систему, поддерживающую эти программы и функции.
Архитектура UNIX
![]() |
Технические средства, показанные в центре диаграммы, выполняют функции, обеспечивающие функционирование операционной системы.
Операционная система взаимодействует с аппаратурой, непосредственно обеспечивая обслуживание программ и их независимость от деталей аппаратной конфигурации. Если представить систему состоящей из пластов, в ней можно выделить системное ядро, изолированное от пользовательских программ. Поскольку программы не зависят от аппаратуры, их легко переносить из одной системы UNIX в другую, функционирующую на другом комплексе технических средств, если только в этих программах не подразумевается работа с конкретным оборудованием. Например, программы, рассчитанные на определенный размер машинного слова, гораздо труднее переводить на другие машины по сравнению с программами, не требующими подобных установлений.
Программы, подобные командному процессору shell и редакторам (ed и vi) и показанные на внешнем по отношению к ядру слое, взаимодействуют с ядром при помощи хорошо определенного набора обращений к операционной системе. Обращения к операционной системе понуждают ядро к выполнению различных операций, которых требует вызывающая программа, и обеспечивают обмен данными между ядром и программой.
Рекомендуемые материалы
Некоторые из программ, приведенных на рисунке, в стандартных конфигурациях системы известны как команды, однако на одном уровне с ними могут располагаться и доступные пользователю программы, такие как программа a.out, стандартное имя для исполняемого файла, созданного компилятором с языка Си. Другие прикладные программы располагаются выше указанных программ, на верхнем уровне, как это показано на рисунке. Например, стандартный компилятор с языка Си ('cc') располагается на самом внешнем слое: он вызывает препроцессор для Си, ассемблер и загрузчик (компоновщик), т.е. отдельные программы предыдущего уровня.
Стандартизация
Стандартизация применима для:
1. Переноса приложений на широкий диапазон систем
2. Совместной работы приложений локальной или глобальной сети
3. Для взаимодействия с пользователем в стиле, облегчающим ему переход от одной системы к другой
Для обеспечения этого существуют открытые спецификации на интерфейс.
Термин “спецификация открыта” означает, что она общедоступна и находится под контролем общественности.
Открытая система, которой является UNIX, должна поддерживать открытые спецификации.
Открытая спецификация не зависит от программного и аппаратного обеспечения.
Файловая система
Файловая система UNIX в частности характеризуется:
· иерархической структурой
· согласованной обработкой массивов данных
· возможностью создания и удаления файлов
· динамическим расширением файлов
· защитой информации в файлах
· трактовкой периферийных устройств (таких как терминалы и ленточные устройства) как файлов.
Корневой каталог имеет вид:
/ - корневой каталог
|
|-bin Двоичные коды наиболее важных команд
|-boot Статические файлы загрузчика boot
|-dev Файлы устройств
|-etc Файлы настройки конфигурации системы
|-home Домашние каталоги пользователей
|-lib Разделяемые библиотеки
|-mnt Точка монтирования временно подключаемых систем
|-proc Псевдо-файловая система с информацией о процессах
|-root Домашний каталог (пользователя) root
|-sbin Наиболее важные системные двоичные коды
|-tmp Временные файлы
|-var Переменные данные
|-usr / Вторая главная иерархия
|- bin
|- sbin
|- lib
|- local Программы, установленные в системе дополнительно, помимо основного дистрибутива
Каждый из этих, а также расположенных на других уровнях каталогов имеет строго определенное назначение, что обеспечивает удобство работы с файловой системой.
Unix – многопользовательская система , можно задавать несколько пользователей.
// Root – главный пользователь.
У каждого файла указывается идентификатор пользователя (UID) и идентификатор группы (GID).
Кроме того, файлу присваивают атрибуты доступа.
Три вида атрибутов.
1. Для владельца;
2. Для группы владельцев;
3. Для остальных.
Атрибуты:
1. Чтение -r
2. Запись -w
3. Исполнение -x
Пример:
$ /bin/ls
rwx r-x r-x
1. первая триада "rwx" разрешает владельцу каталога: r - читать, w - писать и х - выполнять (более точно, для файлов типа каталог w означает разрешение создавать файлы в каталоге и удалять их из него, а х разрешает доступ к файлам каталога);
2. вторая триада отражает права доступа членам группы, в которую входит владелец, которым разрешено только читать и выполнять (запрещено писать в этот файл, т.е. изменять содержимое каталога).
3. последняя триада отражает права доступа прочих пользователей, которым разрешено тоже что и в 2.
Моды доступа кодируются в восьмеричной системе счисления, например:
rwx 111 7
r-x 101 5
rw- r-- --- 640
Для их изменения используется команда chmod.
chmod 640 <файл> Установка мод доступа (файл должен быть разрешен на запись)
При установке мод доступа необходимо учесть, что в каталогах моды x обязательно должны быть установлены.
Аутентификация.
Список пользователей лежит в /еtс/pаsswd и примитивная информация : имя пользователя, комментарий, домашний каталог, оболочка ,UID и GID .
/etc/shadow хранится пароль в зашифрованном виде. Открыт для чтения для root.
/etc/group хранится: название группы, права, идентификатор, номера пользователей .
Аутентификация – это процедура, проверяющая, имеет ли пользователь с предъявленным идентификатором право на доступ к какому-либо ресурсу.
Люди также интересуются этой лекцией: Информатизация общества.
PAM Подключаемый модуль аутентификации
etc/pam.d/
Пользователь предоставляет приложению свои имя и пароль, после чего приложение отправляет эту информацию LDAP-серверу, который разрешет или запрещает доступ этого пользователя к приложению. В качестве LDAP-сервера использеутся Open-LDAP в паре с Samba (в Unix-подобных системах) либо Active Directory (в Windows).
Возникает проблема безопасности: под необходимое пользователю приложение может подстроиться вредоносное, получающее имена и пароли пользователей. Для предотвращения такой ситуации используют протокол Kerberos, который на имя и пароль выдает пользователю «билет» на доступ к приложению.