Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »ПРОГРАММИРОВАНИЕ

Программа для среды UNIX

Тип: курсовая работа
Категория: ПРОГРАММИРОВАНИЕ
Скачать
Купить
Создание программы для среды UNIX, проверяющей атрибут выполнения файла для текущего пользователя. Особенности прав доступа для каталогов. Командный интерпретатор shell; общий синтаксис скрипта. Установка атрибутов защиты для групп пользователей.
Краткое сожержание материала:

Размещено на

Размещено на

Содержание

  • Введение
  • Постановка задачи
  • Анализ требований
    • Права доступа к файлу
  • Проектирование
    • Командный интерпретатор 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 соответственно).

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

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

Разработанный сценарий протестирован на различных набор...

Другие файлы:

Advanced Unix Programming, 2nd edition
The changes to UNIX programming that have taken place since 1985 are extensive to say the least. The first edition of Advanced UNIX Programming is sti...

Unix: The Textbook
Guidebook for UNIX use, teaching the how and why of working in the UNIX environment. Text assumes no prior UNIX experience, carefully blending concept...

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

Learning Unix for OS X Mountain Lion: Using Unix and Linux Tools at the Command Line
Описание: Beneath OS X easy-to-use GUI interface lies a powerful Unix engine. Mac users have Unix, as well as a host of tools ported over from Linux,...

Программирование для UNIX. Наиболее полное руководство
Программирование для UNIX. Наиболее полное руководство - практическое руководство, написанное одним из пионеров программирования для UNIX Марком Дж. Р...