Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Стандартные переменные окружения
При старте командной оболочки, инициализируется множество системных переменных, которые можно посмотреть с помощью команды env. Некоторые из них представляют особый интерес для пользователя системы: DISPLAY Переменная используется графической подсистемой X11 и указывает на адрес X-сервера и номер используемого экрана (подробнее об этом будет сказано в разделе Глава 7, Графическая подсистема UNIX). EDITOR Если какая-то утилита требует редактирования файла, то вместо написания и использования встроенного редактора, этот файл можно передать на редактирование программе, путь к которой хранится в переменной EDITOR. HOME Переменная содержит имя домашней директории текущего пользователя. PATH Переменная окружения содержит список директорий, разделённый символом «: ». Этот список просматривается при каждом запуске команды – в нём производится поиск исполняемых файлов с соответствующем команде именем. Примером значения переменной окружения может быть «/bin: /usr/bin: /usr/local/bin». Как правило, значение этой переменной различается для простого пользователя и администратора – для того, чтобы разделить их рабочий инструментарий. SHELL Имя текущей программы оболочки. TERM Тип терминала, используемого в настоящий момент. Эта переменная анализируется программами для того, чтобы варьировать свой интерфейс в зависимости от возможностей терминала. USER Имя текущего пользователя. _ (одиночный символ подчёркивания) В точности последняя команда, выполненная в командной оболочке.
23. Что такое командная оболочка? Что происходит при запуске команды? Командная оболочка Основная среда взаимодействия с UNIX – командная строка. Суть её в том, что каждая строка, передаваемая пользователем системе, – это команда, которую та должна выполнить. Пока не нажата клавиша Enter, строку можно редактировать, затем она отсылается системе. Команды интерпретируются и выполняются специальной программой – командной оболочкой (или «shell», по-английски). Через командную оболочку производится управление пользовательскими процессами – для этого используются средства межпроцессного обмена, описанные ранее (см. «Межпроцессное взаимодействие»). Командная оболочка непосредственно связана с терминалом, через который осуществляется передача управляющих последовательностей и текста. На рисунке Рис.2.1, «Интерфейс командной строки» представлена общая схема взаимодействия пользователя с системой при использовании командной строки. Рис.2.1. Интерфейс командной строки Процесс выполнения команды: Командная оболочка – это обычный процесс в операционной системе UNIX. Когда пользователь вводит команду (например, по нажатию Enter ), командная оболочка выполняет следующие действия:
Рис.2.3. Запуск команды оболочкой
24. Какие существуют средства объединения команд? Чем они различаются? Способы объединения команд Презентация 3-06: способы объединения команд Существует возможность объединять несколько команд в одной командной строке. Это можно делать несколькими способами: Последовательное выполнение. Команды выполняются одна за другой, не зависимо от результата их исполнения. В качестве разделителя выступает символ точки с запятой («; »). В качестве примера можно рассмотреть составную команду du -sh; date, которая выводит на экран содержимое домашней директории, а затем текущие дату и время. Условное выполнение (И) Проверяется код завершения первой программы, если он равен 0, производится выполнение второй программы, и так далее. Таким образом, последняя команда выполнится только при успешном завершении всех предыдущих. В качестве разделителя выступают два амперсанда («& & »). В качестве примера можно рассмотреть составную команду test -r /tmp/txt & & cp /tmp/txt., которая проверяет возможность чтения файла /tmp/txt и в случае успеха, копирует этот файл в локальную директорию. Условное выполнение (ИЛИ) Проверяется код завершения первой программы, если он не равен 0, производится выполнение второй программы, и так далее. Последняя команда будет запущена только если ни одна из предыдущих не закончилась успешно. В качестве разделителя выступают две вертикальный черты («||»). В качестве примера можно рассмотреть составную команду test -d /tmp/dir || mkdir /tmp/dir, которая проверяет существование директории /tmp/dir и если её нет, создаёт её. Конвейер При выполнении программ связываются их стандартные выходы и входы, так что текстовые данные передаются через них последовательно, как по конвейеру. Этот механизм является одной из самых фундаментальных особенностей UNIX и широко используется при работе в командной стоке. Все программы могут быть запущены одновременно, так чтобы обеспечить интерактивность вывода при прохождении данных через цепочку программ. Если одна из программ в цепочке конвейера завершится (например, в случае ошибки), остальным будет отправлен специальный сигнал (SIGPIPE). В качестве разделителя используется символ вертикальный черты («|»). Рассмотрим пример команды cat file.txt | uniq | sort, которая читает содержимое файла file.txt, удаляет из него повторяющиеся строки и сортирует оставшиеся строки по алфавиту. Результат выводится на экран. Современные командные оболочки позволяют строить более гибкие условные выражения (с использованием скобок и знака отрицания) из выполняющихся команд.
Что входит в справочную систему UNIX? Больше всего полезной информации содержится в страницах руководства. Каждая страница посвящена какому-нибудь одному объекту системы. Для того чтобы посмотреть страницу руководства, нужно дать команду системе man объект. Справочные руководства делятся на разделы – в зависимости от типа описываемых объектов. Если один и тот же термин описывается в нескольких разделах, необходимо явно указать, какой из них использовать, например, man 3 printf для 3-го раздела руководств. Всего существует 8 разделов руководств: 1. пользовательские утилиты и прочие инструменты 2. системные вызовы 3. библиотечные функции 4. внешние устройства (и их представление в системе) 5. форматы и таблицы (типы файлов, протоколы и прочее) 6. игры и всевозможные «ненужные» утилиты 7. «остальное», т. е. То, что не подходит под другие разделы 8. команды и инструменты системного администратора
apropos, whatis ищет подстроку в некоторой базе данных, состоящей из полей NAME всех страниц помощи в системе. Различие между ними в том, что whatis – только среди имен объектов (в левых частях полей NAME), а apropos – по всей базе. В результате у whatis получается список кратких описаний объектов с именами, включающими искомое слово, а у apropos – список, в котором это слово упоминается. Для того, чтобы это узнать, все равно пришлось один раз прочесть документацию.
Другой источник информации о UNIX (а точнее, в UNIX-подобных системах, базирующихся на программном обеспечении от GNU) и составляющих ее программах – справочная подсистема info. Страница руководства, несмотря на обилие ссылок различного типа, остается «линейным» текстом, структурированным только логически. Документ info структурирован прежде всего топологически – это настоящий гипертекст, в котором множество небольших страниц объединены в дерево. В каждом разделе документа info всегда есть оглавление, из которого можно перейти сразу к нужному подразделу, откуда всегда можно вернуться обратно. Кроме того, info-документ можно читать и как непрерывный текст, поэтому в каждом подразделе есть ссылки на предыдущий и последующий подразделы. Еще есть документация поставляемая с программой (обычно помещается в каталог /usr/share/doc/имя_объекта)
Чем отличаются номинальный и действительный субъект? Как они соотносятся с объектом безопасности? Что представляют собой субъект и объект безопасности в UNIX?
Важным элементом политики безопасности является управление доступом: ограничение или исключение несанкционированного доступа к информации и программным средствам. При этом используются два основных понятия: объект и субъект системы. Объектом системы мы будем называть любой её идентифицируемый ресурс (например, файл или устройство). Доступом к объекту системы – некоторую заданную в ней операцию над этим объектом (скажем, чтение или запись). Действительным субъектом системы назовем любую сущность, способную выполнять действия над объектами (имеющую к ним доступ). Действительным субъектом системы назовем любую сущность, способную выполнять действия над объектами (имеющую к ним доступ). Действительному субъекту системы соответствует некоторая абстракция, на основании которой принимается решение о предоставлении доступа к объекту или об отказе в доступе. Такая абстракция называется номинальным субъектом. Например, студент МГТУ – действительный субъект, его пропуск в МГТУ – номинальный. Другим примером может служить злоумышленник, прокравшийся в секретную лабораторию с украденной картой доступа – он является действительным субъектом, а карта – номинальным.
Что такое политика безопасности? Какие требования выдвигаются по отношению к ней?
Политика безопасности – это набор законов, правил и норм поведения, определяющих, как организация обрабатывает, защищает и распространяет информацию. Это активный компонент защиты, который включает в себя анализ возможных угроз и выбор мер противодействия. Политика безопасности должна быть полной, непротиворечивой и рассматривать все возможности доступа субъектов системы к её объектам. Только соблюдение всех трех принципов гарантирует, что нарушить установленные правила (например, получить несанкционированный доступ к объекту) системными средствами невозможно. Если же предполагаемый злоумышленник воспользовался каким-нибудь внесистемным средством и смог получить статус номинального субъекта, к которому он не имеет отношения (например, подглядел чужой пароль и работает под чужим именем), никаких гарантий быть не может. Полнота политики безопасности означает, что в ней должны быть отражены все существующие ограничения доступа. Непротиворечивость заключается в том, что решение об отказе или предоставлении доступа конкретного субъекта к конкретному объекту не должно зависеть от того, какими путями система к нему приходит. Третье требование, называемое также отсутствием недокументированных возможностей, должно гарантировать нам, что доступ не может быть осуществлен иначе как описанным в политике безопасности способом. Политика безопасности включает в себя технические, организационные и правовые аспекты.
28. Какие существуют наиболее распространённые схемы доступа? В чём заключаются основные отличия между ними? Какая схема доступа используется в UNIX? Существует несколько схем управления доступом, называемых моделями доступа. Самые известные из них: 1) Мандатная модель доступа. Объектам и субъектам системы ставится в соответствие метка безопасности или мандат (например, гриф секретности). При этом метка безопасности субъекта описывает его благонадёжность, а метка безопасность объекта — степень закрытости информации. Доступ к объекту разрешён только субъектам с соответствующей или более сильной меткой. Недостатком такой схемы можно считать слишком грубое деление прав, необходимость введения категорий доступа и т.п.. Также для данной модели доступа очень важно разработать механизм понижения секретности теряющих важность документов. 2) Списки доступа. Все субъекты и объекты системы объединяются в таблицу, в строках которой находятся субъекты (активные сущности), а в столбцах — объекты (пассивные сущности), элементы же такой таблицы содержат перечисление прав, которыми субъект обладает в отношении данного объекта. Такая схема называется субъект-объектная модель. Недостатками можно считать огромный размер таблицы и сложность администрирования в случае большого числа объектов и субъектов в системе. 3) Произвольное управление доступом. Каждому объекту сопоставляется один субъект — владелец объекта. Владелец может по своему усмотрению давать другим субъектам или отнимать у них права на доступ к объекту. Если объект имеет несколько хозяев, они могут быть объединены общим субъектом — группой. Такая схема позволяет значительно сократить размер таблицы прав субъектов по отношению к объектам. Эта схема также называется субъект-субъектная модель. Свойством этой схемы (достоинством и одновременно недостатком) является значительное упрощение управления доступом, что не позволяет строить сложные отношения между субъектами и объектами. В операционной системе UNIX используется достаточно простая модель доступа, основанная на субъект-субъектной модели. В современных версиях UNIX помимо общей схемы можно использовать списки доступа. При этом реализуется статическая авторизация множественного доступа к объекту.
29. Какие существуют права доступа в UNIX? Какие из них являются специфичными для простых файлов, а какие для директорий? На уровне файловой системы в UNIX определяется три вида доступа: чтение (read, r), запись (write, w) и использование (execution, x). Право на чтение из файла дает доступ к содержащейся в нем информации, а право записи – возможность ее изменять. При каждом файле имеется список того, что с ним может делать владелец, член группы владельцев и кто угодно. Флаг использования трактуется по-разному в зависимости от типа файла. В случае простого файла он задаёт возможность исполнения файла, т.е. запуска программы, содержащейся в этом файле. Для директории – это возможность доступа к файлам в этой директории (точнее говоря, к атрибутам этих файлов – имени, правам доступа и т.п..). 30. Что такое подмена идентификатора процесса? Как такое право устанавливается и в каких случаях применяется?
В UNIX существует механизм подмены идентификатора (SetUID), позволяющий пользователям запускать процессы с идентификаторами других пользователей. Этот механизм применяется в тех случаях, когда процессу для выполнения определённых операций необходимо предоставить повышенные права (например, суперпользователя) или права другого пользователя. Подмена идентификатора в том случае, если процесс запустит вместо себя при помощи системного вызова exec() программу из файла, в правах доступа которого установлен бит подмены идентификатора пользователя (SUID-бит, обозначается s в символьной записи прав доступа). Запущенный из этого файла процесс получит исполнительный идентификатор владельца (EUID) файла вместо идентификатора владельца процесса-родителя (см. Рисунок 2.19, «Подмена идентификатора процесса»), благодаря чему UID процесса сохраняет информацию о том, кто на самом деле запустил программу. В современных UNIX-системах предусмотрен и ещё один дополнительный атрибут — SetGID, бит подмены идентификатора группы. Этот механизм работает совершенно аналогично подмене идентификатора пользователя, с тем отличием, что процесс, запущенный из файла с атрибутом SetGID, получает идентификатор группы-владельца файла, UID же его остается неизменным. Использование SetGID позволяет весьма гибким образом контролировать ситуацию повышения прав доступа процесса. Особое значение имеют атрибуты подмены идентификатора (SetUID и SetGID), установленные на каталогах (о других правах доступа для каталогов сказано в разделе «Разделяемые каталоги») — для каталогов тоже используются права на исполнение, хотя и имеют другой смысл, чем у исполняемых файлов. Атрибут SetGID, установленный на каталоге, указывает, что файлы и подкаталоги, создаваемые внутри этого подкаталога любыми процессами, будут получать тот же идентификатор группы, что и сам каталог. Причем подкаталоги будут также наследовать атрибут SetGID. Такой механизм используется для организации обзих каталогов, файлы в которых должны быть доступны на равных условиях группе пользователей. Атрибут SetUID, установленный на каталоге, просто игнорируется. Атрибуты подмены идентификаторов пользователя и группы несут потенциальную угрозу безопасности сиситемы и должны использоваться с осторожностью. 31. Из каких этапов состоит процесс аутентификации пользователя в UNIX? В UNIX сеанс работы пользователя начинается с его аутентификации и заканчивается его выходом из системы. При входе в систему выполняется следующая последовательность действий (см. Рисунок 2.20, «Регистрация пользователя в системе»):
При работе регистрации на удалённом компьютере роль getty исполняет сетевой демон, например ssh. В современных UNIX-системах существуют расширения систем авторизации и аутентификации, позволяющие интегрировать в процесс аутентификации любые дополнительные процедуры. Например, в Linux-системах этот механизм называется подключаемые модули аутентификации (Pluggable Authentication Modules, PAM). Рассмотрение этих средств выходит за рамки данного курса.
Популярное:
|
Последнее изменение этой страницы: 2017-03-03; Просмотров: 591; Нарушение авторского права страницы