Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LABORATORNAYa_RABOTA__4.rtf
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
203.54 Кб
Скачать

4.3. Механизм защиты файлов. Права и полномочия

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

Если ввести команду ls -al, на экран будет выведена информация о содержимом текущего каталога примерно в следующем виде:

drwxr-xr-x 1 staff 3237 Dec 20 12:04.

drwxr-xr-x 1 staff 4237 Dec 20 12:04..

-rw-r----- 1 petr 121437 Dec 20 11:04 file2

-rw-r----- 2 staff 2237 Dec 20 12:05 file3

Каждая строка содержит следующую информацию о файле:

код защиты файла;

счетчик числа ссылок на файл;

имя владельца файла;

длина файла;

дата и время создания;

собственно имя файла.

Структура кода защиты следующая:

-rwx rwx rwx

r – разрешение на доступ к файлу по чтению; если вместо символа r стоит символ -, то разрешения на доступ к файлу по чтению нет;

w – разрешение на доступ к файлу по записи; если вместо символа w стоит символ -, то разрешения на доступ к файлу по записи нет;

x – разрешение на доступ к файлу по выполнению; если вместо символа x стоит символ -, то разрешения на доступ к файлу по выполнению нет.

Для файлов, являющихся каталогами, код защиты имеет несколько иной смысл, чем для обычных файлов:

d – файл является каталогом; если вместо символа d стоит символ -, то это обычный файл;

r – разрешение осуществлять вывод на терминал содержимого каталога;

w – разрешение создавать файлы в каталоге и удалять из него;

x – разрешение на доступ к файлам, содержащимся в каталоге, и на установку каталога в качестве текущего каталога с помощью команды cd.

Изменить код защиты файла, владельцем которого Вы являетесь, можно с помощью команды chmode, изменить владельца файла – командой chown, изменить идентификатор группы файла – командой chgrp.

4.4. Конвейер, фильтры, асинхронный режим выполнения команд

Многие команды ОС UNIX производят ввод информации с клавиатуры терминала – стандартного ввода и выводят информацию на экран дисплея – стандартный вывод. Интерпретатор команд (командный процессор) предоставляет возможность переназначать стандартный ввод-вывод. Для переназначения результатов работы команды в файл необходимо в конце командной строки указать символ >, за которым должно следовать имя файла. Для добавления в уже существующий файл используются символы >>.

Переназначение стандартного ввода производится точно таким же образом, за исключением того, что вместо символа > используется символ <, за которым должно следовать имя файла для ввода информации. Приведем два примера переназначения ввода-вывода.

echo This is test file for mail! > message

mail root < message

После выполнения первой команды будет создан файл message с одной текстовой строчкой. Вторая команда пошлет этот файл по электронной почте пользователю с именем root.

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

Большинство команд UNIX вводят информацию со стандартного ввода, выполняют какие-то действия над этой информацией и выводят результаты своей работы на стандартный вывод. Команды такого типа называются фильтрами. На основе фильтров можно строить конвейеры для создания командных строк произвольной сложности.

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

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

Пусть введена команда:

sort longfile > sort.output&

Командный процессор не будет ждать завершения выполнения сортировки, а сразу выдаст промптер. При этом результаты выполнения команды будут сохраняться в файле sort.output.

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

kill номер-процесса

Приведем еще два примера использования возможностей асинхронного режима:

(команда1; команда2;...; командаN)&

команда1 | команда2 &

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]