Атрибуты файлов
По сравнению с файлами MS-DOS файлы, расположенные на файл-сервере Novell NetWare, имеют больше атрибутов. В этом разделе мы рассмотрим эти атрибуты.
В отличие от MS-DOS файловая система Novell NetWare для хранения атрибутов файлов использует не один, а два байта. Первый байт называется байтом атрибутов (File Attributes Byte), второй - байтом расширенных атрибутов (Extended File Attributes Byte).
Приведем назначение отдельных битов байта атрибутов:
Бит | Назначение |
0 | Read Only: файл можно читать, но нельзя в него писать. Этот файл нельзя также удалять или переименовывать |
1 | Hidden: скрытый файл, не появляется в списке файлов при поиске в каталоге обычными средствами |
2 | System: системный файл, не появляется в списке файлов при поиске в каталоге обычными средствами |
3 | Execute Only: файл может быть загружен только для выполнения. Этот файл нельзя читать или перезаписывать. В операционной системе Novell NetWare не существует средств для сброса бита Execute Only; поэтому, если вы установите этот бит, вы навсегда потеряете доступ к файлу на чтение и запись |
4 | Subdirectory: данный элемент оглавления каталога описывает не файл, а подкаталог |
5 | Archive: этот бит установлен, если после выполнения операции выгрузки файла сам файл был изменен |
6 | Зарезервировано |
7 | Shareable: к данному файлу разрешен одновременный доступ со стороны нескольких пользователей, расположенных на разных рабочих станциях |
Обратим ваше внимание на бит Execute Only. Если вы установите этот бит, вызвав соответствующую функцию или воспользовавшись утилитами Novell NetWare, никто (даже супервизор) не будет иметь доступа на чтение к этому файлу. Такая возможность полезна для защиты программ от несанкционированного копирования и дезассемблирования, однако этот способ обладает рядом недостатков.
Во-первых, вы не можете установить бит Execute Only у оверлеев, так как перед запуском их надо загрузить в память, а такая операция запрещена для "только выполняемых" файлов.
Файлы, содержащие программы для Microsoft Windows, также нельзя отмечать как Execute Only из-за того, что они содержат ресурсы, подгружаемые после запуска программы.
Во-вторых, никто не помешает злоумышленнику поймать вашу программу в памяти уже после ее запуска. Для этого он может воспользоваться, например, резидентными отладчиками, такими, как AFD или Turbo Debugger. Так что не переоценивайте защиту при помощи атрибута Execute Only.
Если вы случайно установили бит Execute Only для файла, содержащего данные, можете смело удалять этот файл - вам никогда не удастся сбросить бит Execute Only и прочитать содержимое файла.
Байт расширенных атрибутов имеет следующий формат:
Бит | Назначение |
0, 1, 2 | Search Mode: биты 0, 1 и 2 задают режим поиска программного файла при запуске программы на выполнение. Мы не будем рассматривать эти биты для сокращения объема книги, подробности о режимах поиска и дисках поиска вы можете узнать из руководства по библиотеке NetWare C Interface |
3 | Зарезервировано |
4 | Transaction Bit: при работе с файлом используется обработка транзакций. Файл, у которого установлен этот бит, не может быть удален или переименован |
5 | Index: для файла размером больше 2 Мбайт для более быстрого доступа организуется индекс по таблице FAT. Этот бит не используется в Novell NetWare версии 3.11 |
6 | Зарезервировано |
7 | Зарезервировано |