Приемы профессиональной работы в UNIX


ЗАЩИТА ЛИЧНОЙ ИНФОРМАЦИИ - часть 10


Что делает lock?

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

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

Действие lock по умолчанию - блокирование указанного файла. Опция -u разблокирует указанный файл.

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

ПРИМЕРЫ

1. $ lock -u $HOME/src *.c

Разблокирование моего каталога с исходными текстами и всех исходных файлов на языке Си в текущем каталоге. Разблокирование дает возможность чтения всем и возможность записи только мне. 2. $ lock $HOME/bin

Блокирует мой каталог bin так, чтобы никто не мог читать или писать в него файлы. Даже хотя мой каталог нельзя читать, любой посторонний может все же войти в него командой cd, если установлен бит x. Если он попытается выполнить команду ls, каждый файл будет выдавать сообщение об ошибке вида "filename not found" (файл с именем "filename" не найден). Никто не может получить информацию из индексного дескриптора файла, такую как временные характеристики и права доступа, но любой может увидеть имена всех файлов из сообщения об ошибке.

ПОЯСНЕНИЯ

Строки 4-8 проверяют счетчик аргументов. Если не был указан ни один аргумент, выводится сообщение об ошибке. Должно быть указано хотя бы одно имя файла.

Строки 10-14 проверяют, является ли первый символ первого позиционного параметра знаком "минус" и отличается ли первая опция от допустимой опции -u. Если эти условия выполняются, выводится сообщение об ошибке и программа завершается.

Строки 16 и 17 инициализируют установки режимов прав доступа по умолчанию. MODE1 устанавливается для запрета чтения и записи категориям пользователей "группа" и "другие". MODE2 устанавливается для запрета пользователю (т.е. мне) права записи. Это страховка для меня от случайной записи в файл. Нам нужны две такие переменные, поскольку эти два режима довольно разные. Единственный способ сделать это - дважды вызвать команду chmod с двумя различными установками.

Строки 19-23 проверяют, была ли указана в командной строке опция -u. Если была, она убирается из командной строки командой shift и переменные режима инициализируются для разблокирования файлов. Строка 21 разрешает возможность чтения группе пользователей и другим. Строка 22 разрешает мне возможность записи. Обратите внимание, что в командном файле lock не происходит модификации битов x, s или t. Это сделано намеренно, поскольку бит x должен быть установлен только в случае, если файл может быть исполняемым. Для каталогов бит x должен быть установлен только в случае, если вы хотите, чтобы другие пользователи могли заходить в этот каталог. Мы также никогда не устанавливаем возможность записи для группы пользователей и для других пользователей, но мы отключаем ее при блокировании файлов. Это дополнительная мера предосторожности на случай, если файл имеет установленными такие права доступа к нему, которые мы по каким-то причинам не желаем оставлять.

В строках 25 и 26 выполняется команда chmod. Параметр $@ использован как обозначение всех имен файлов, указанных в командной строке. Такой способ позволяет вам вызывать lock с несколькими именами файлов.

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




Начало  Назад  



Книжный магазин