Программа для среды UNIX - Курсовая работа

бесплатно 0
4.5 41
Создание программы для среды UNIX, проверяющей атрибут выполнения файла для текущего пользователя. Особенности прав доступа для каталогов. Командный интерпретатор shell; общий синтаксис скрипта. Установка атрибутов защиты для групп пользователей.


Аннотация к работе
Если указанный в параметре файл не имеет установленного атрибута разрешения выполнения, то необходимо установить этот параметр. Файлы в Linux имеют двух владельцев: пользователя (user owner) и группы (group owner). Команда chmod g x-w exampl устанавливает для группы право на выполнение файла exampl и снимет право на запись. Например, команда chmod 754 my_file дает все права владельцу, разрешает чтение и исполнение для группы и устанавливает право только для чтения применительно ко всем остальным пользователям. В последнем случае должно быть установлено право на чтение, т.к. командный интерпретатор должен иметь возможность считывать команды из файла.#!/bin/bash ls-l echo "Введите имя файла: "read fn if [!Приведены примеры для использования в качестве аргумента файлов с отсутствующим и установленным атрибутом на выполнение -rw-r-r-1 all all 0 Дек 22 12:08 test Введите имя файла test Файл test недоступен для исполнения.Атрибут будет установлен Файл test доступен для исполнения.

План
Содержание

Введение

Постановка задачи

Анализ требований

Права доступа к файлу

Проектирование

Командный интерпретатор shell

Общий синтаксис скрипта

Тестирование

Приложение А (Текст сценария)

Приложение Б (Результаты тестирования)

Введение
Сегодня характер работы в UNIX существенно отличается от того, каким он был, скажем, пятнадцать лет назад. Графический многооконный интерфейс, миллионы цветов, системы меню, техника drag-and-drop, - все это стирает различия между работой в UNIX, и например, в Windows NT. Но взглянув внимательнее на экран, можно найти хотя бы одно окно простого алфавитно-цифрового терминала.

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

Постановка задачи

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

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

Анализ требований

Права доступа к файлу

Файлы в Linux имеют двух владельцев: пользователя (user owner) и группы (group owner). Важной особенностью является то, что владелец-пользователь может не являться членом группы, владеющей файлом. Это дает большую гибкость в организации доступа к файлам. Владельцем-пользователем вновь созданного файла является пользователь, создавший этот файл. Этот пользователь может изменить права доступа к нему по специальной команде. Возможно также изменение владельца-пользователя и владельца-группы для файла.

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

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

[who] | - = [permission]

Первое поле может содержать один из следующих символов: аустановка атрибутов защиты для всех категорий пользователей (используется по умолчанию);

gустановка атрибутов защиты для групп пользователей;

оустановка для прочих процессов;

uустановка атрибутов только для владельца.

Допустимые операции: добавление прав доступа;

-отмена прав доступа;

=определение перечисленных и отмена остальных прав.

Параметр permission устанавливает значения атрибутов для перечисленных в первом параметре процессов. Этот параметр может представляться комбинацией из следующих символов: хразрешает выполнение (для каталога разрешение поиска);

rразрешение чтения;

wразрешение записи;

sустановка пользовательского или группового идентификатора.

Команда chmod g x-w exampl устанавливает для группы право на выполнение файла exampl и снимет право на запись.

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

При использовании числовой формы определения атрибутов они задаются в виде восьмеричных кодов, каждая восьмеричная цифра задает атрибуты соответственно для владельца, группы и остальных процессов. Двоичные разряды восьмеричной цифры определяют разрешение - 1 или запрет - 0 последовательно для чтения (r), записи (w) и исполнения (x).

Например, команда chmod 754 my_file дает все права владельцу, разрешает чтение и исполнение для группы и устанавливает право только для чтения применительно ко всем остальным пользователям.

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

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

Привилегированный пользователь может выполнить изменение владельца-пользователя и владельца-группы. Изменение пользователя-владельца файла производится командой: chown

Новый владелец определяется именем пользователя или десятичным идентификатором пользователя. программа unix атрибут скрипт

Для того чтобы установить нового владельца-группу используется chgrp

Группа задается идентификатором или именем.

Проектирование

Командный интерпретатор shell

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

· Командный интерпретатор является удобным средством программирования. Синтаксис языка различных командных интерпретаторов несколько отличается. С помощью shell можно создавать сложные программы, конструируя их, как из кирпичиков, из существующих утилит UNIX. Программы на языке shell часто называют скриптами тли сценариями (script). Интерпретатор считывает строки из файла-скрипта и выполняет их, как если бы они были набраны в командной строке.

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

· Наконец, основная инициализация операционной системы происходит в результате выполнения скриптов shell. И при изменении процесса инициализации следует заглянуть в эти скрипты.

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

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

В нашем случае: #!/bin/bash символ # означает комментарии.

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

Общий синтаксис скрипта

В командной строке или скрипте может быть определена и использоваться переменная, Значением переменной является строка, которая передается присвоением: var=value, где var - имя переменной, а value - ее значение.

При использовании переменной, например var, командный интерпретатор подставляет вместо $var ее значение.

Язык shell позволяет осуществлять ветвление программы, предоставляя оператор условия if. Условие может генерироваться командой test.

Команда test имеет следующий синтаксис: test выражение или [ выражение ]

Команда вычисляет логическое выражение и возвращает 0, если выражение истинно, и 1 в противном случае.

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

[ -r ]

[ -w ]

[ -x ] для чтения, записи и выполнения соответственно.

Если команда вернет 0 - размер файла больше нуля.

Более сложные выражения могут быть образованны с помощью логических операторов !, -а, -о (операции NOT, AND, OR соответственно).

Текст сценария приведен в приложении А Тестирование

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

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

Результаты тестирования приведены в приложении Б.
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?