Программа для среды UNIX
Создание программы для среды UNIX, проверяющей атрибут выполнения файла для текущего пользователя. Особенности прав доступа для каталогов. Командный интерпретатор shell; общий синтаксис скрипта. Установка атрибутов защиты для групп пользователей.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 12.05.2013 |
Размер файла | 18,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Содержание
- Введение
- Постановка задачи
- Анализ требований
- Права доступа к файлу
- Проектирование
- Командный интерпретатор shell
- Общий синтаксис скрипта
- Тестирование
- Приложение А (Текст сценария)
- Приложение Б (Результаты тестирования)
Введение
Сегодня характер работы в UNIX существенно отличается от того, каким он был, скажем, пятнадцать лет назад. Графический многооконный интерфейс, миллионы цветов, системы меню, техника drag-and-drop, - всё это стирает различия между работой в UNIX, и например, в Windows NT. Но взглянув внимательнее на экран, можно найти хотя бы одно окно простого алфавитно-цифрового терминала.
Это - базовая пользовательская среда. Интерфейс командной строки может показаться безнадёжно устаревшим, но в случае с UNIX это - самый непосредственный способ выполнения множества небольших задач администрирования. И программа, с которой рано или поздно придётся работать при работе в UNIX, - командный интерпретатор shell.
Постановка задачи
Создать программу для среды UNIX, проверяющую атрибут выполнения файла для текущего пользователя.
Если указанный в параметре файл не имеет установленного атрибута разрешения выполнения, то необходимо установить этот параметр.
Анализ требований
Права доступа к файлу
Файлы в Linux имеют двух владельцев: пользователя (user owner) и группы (group owner). Важной особенностью является то, что владелец-пользователь может не являться членом группы, владеющей файлом. Это дает большую гибкость в организации доступа к файлам. Владельцем-пользователем вновь созданного файла является пользователь, создавший этот файл. Этот пользователь может изменить права доступа к нему по специальной команде. Возможно также изменение владельца-пользователя и владельца-группы для файла.
Права доступа могут изменяться с использованием команды
chmod <режим> <список файлов>
Эта команда может задавать правила изменения атрибутов доступа (<режим>) в двух формах - символической и числовой. В символической форме атрибуты задаются в формате
[who] + | - = [permission]
Первое поле может содержать один из следующих символов:
aустановка атрибутов защиты для всех категорий пользователей (используется по умолчанию);
gустановка атрибутов защиты для групп пользователей;
oустановка для прочих процессов;
uустановка атрибутов только для владельца.
Допустимые операции:
+добавление прав доступа;
-отмена прав доступа;
=определение перечисленных и отмена остальных прав.
Параметр permission устанавливает значения атрибутов для перечисленных в первом параметре процессов. Этот параметр может представляться комбинацией из следующих символов:
xразрешает выполнение (для каталога разрешение поиска);
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 соответственно).
Текст сценария приведён в приложении А
Тестирование
Разработанный сценарий протестирован на различных наборах входных данных. Для успешного выполнения сценария он должен иметь установленный атрибут разрешения выполнения.
Следует отметить, что сценарий будет выполняться только для файлов, на изменение прав доступа к которым, пользователь имеет привилегии.
Результаты тестирования приведены в приложении Б.
Приложение А (Текст сценария)
#!/bin/bash
ls -l
echo "Введите имя файла: "
read fn
if [ ! -x $fn ]
then
echo "Файл $fn недоступен для выполнения. Атрибут будет
установлен"
chmod u+x $fn
fi
echo "Файл $fn доступен для выполнения."
ls -l
Приложение Б
Результаты тестирования
Приведены примеры для использования в качестве аргумента файлов с отсутствующим и установленным атрибутом на выполнение
$ ./kp6
итого 8
-rwxrwxrwx 1 all all 217 Дек 22 12:36 kp6
-rw-r--r-- 1 all all 0 Дек 22 12:08 test
-rwxrw-r-- 1 all all 5 Дек 22 12:34 test1
Введите имя файла
test
Файл test недоступен для исполнения.Атрибут будет установлен
Файл test доступен для исполнения.
итого 8
-rwxrwxrwx 1 all all 217 Дек 22 12:36 kp6
-rwxr--r-- 1 all all 0 Дек 22 12:08 test
-rwxrw-r-- 1 all all 5 Дек 22 12:34 test1
$ ./kp6
итого 8
-rwxrwxrwx 1 all all 217 Дек 22 12:36 kp6
-rwxr--r-- 1 all all 0 Дек 22 12:08 test
-rwxrw-r-- 1 all all 5 Дек 22 12:34 test1
Введите имя файла
test1
Файл test1 доступен для исполнения.
итого 8
-rwxrwxrwx 1 all all 217 Дек 22 12:36 kp6
-rwxr--r-- 1 all all 0 Дек 22 12:08 test
-rwxrw-r-- 1 all all 5 Дек 22 12:34 test1
$
Размещено на Allbest.ru
Подобные документы
История развития ОС UNIX, ее достоинства. Управление компьютером под управлением UNIX. Интерпретация командной строки и структура файловой системы. Команды управления процессами. Средства системного администрирования и учетные записи пользователей.
презентация [78,1 K], добавлен 12.05.2014Права доступа к файлам и управление ими и другими атрибутами. Значения прав доступа для файлов и директорий. Набор файловых флагов. Команды управления процессами в операционной системе UNIX. Опции и значения программ архивации и сжатия - tar и gzip.
контрольная работа [234,4 K], добавлен 16.01.2014История развития и отличительные признаки UNIX-системы. Основы информационной безопасности и особенности настройки исследуемой операционной системы, ее достоинства, недостатки и базовые права доступа. Общая характеристика безопасности ядра UNIX.
реферат [599,5 K], добавлен 18.09.2013История появления операционной системы Unix. Перекомпиляция Unix в коды любой аппаратной платформы, ее многозадачность и многотерминальность. Основные отличия Unix от других операционных систем. Использование Unix в качестве сервера и рабочей станции.
реферат [28,1 K], добавлен 05.04.2010Установка привилегий доступа определенного пользователя, виды привилегий и ключевые слова в операторе. Лишение пользователя права назначать привилегии. Структура данных и алгоритм, описание работы программы, имя пользователя, пароль и создание прав.
курсовая работа [207,2 K], добавлен 12.08.2011Основные структуры процессов в операционной системе Unix. Возможные состояния процесса в Unix и способы перехода между ними. Планирование и выполнение процессов. Различия между родительским и дочерним процессом. Ожидание завершения и выполнения процесса.
курсовая работа [673,0 K], добавлен 24.02.2012Характеристика дискретного управления доступом. Особенности модели тип-домен, основанной на концепции минимальных привилегий. Unix-система права доступа файлов. Контролирование администратором доступа в мандатной системе, проблемы ее использования.
реферат [253,2 K], добавлен 09.01.2012Файлы IO.SYS и MSDOS.SYS; командный процессор DOS. Базовая система ввода-вывода, загрузчик, диалог пользователя с DOS, команды. Недостатки языка програмирования с++. Создание и описание программы, позволяющей работать с файлами в среде DOS, ее алгоритм.
курсовая работа [24,4 K], добавлен 02.12.2009Unix - полноценная, изначально многопользовательская, многозадачная и многотерминальная операционная система. Особенности архитектуры Unix, ее два кита - файлы и процессы. Ядро операционной системы, ее файловая система, работа устройств, драйверы.
реферат [1,0 M], добавлен 22.03.2016Описание файловой системы Unix. Работа основных команд ls, cmp, comm, их ключей. Разработка программного продукта, работающего в среде Windows и представляющего собой эмулятора командного процессора операционной системы Unix. Выбор средств реализации.
курсовая работа [183,0 K], добавлен 29.04.2015