Статус нашего сайта: |
ICQ Information Center |
ICQ SHOP 5-значные 6-значные 7-значные 8-значные 9-значные Rippers List ОПЛАТА СТАТЬИ СЕКРЕТЫ HELP CENTER OWNED LIST РОЗЫСК!New! ICQ РЕЛИЗЫ Протоколы ICQ LOL ;-) Настройка компьютера Аватарки Смайлики СОФТ Mail Checkers Bruteforces ICQTeam Soft 8thWonder Soft Other Progs ICQ Patches Miranda ICQ ФорумАрхив! ВАШ АККАУНТ ICQ LiveJournal
РекламаНаш канал:irc.icqinfo.ru |
Таненбаум Э.- Архитектура компьютера. стр.378unii nk("/usr/ast/bin/game3") Вызовы 1 ink и uni ink могут использоваться для перемещения файлов из одного каталога в другой. С каждым файлом (а также с каждым каталогом, поскольку каталог — это тоже файл) связана битовая карта, которая сообщает, кому разрешен доступ к файлу. Карта содержит три поля RWX (Read, Write, eXecute — чтение, запись, выполнение). Первое из них контролирует разрешение на чтение, запись и выполнение файлов для их владельца, второе — для других пользователей из группы владельца, третье — для всех остальных пользователей. Например, биты RWX R-X -X означают, что владелец файла может читать этот файл, записывать что-либо в него и выполнять его (очевидно, файл является исполняемой программой, иначе не было бы разрешения на его выполнение), другие члены группы могут читать и выполнять его, а все остальные — только выполнять. Таким образом, посторонние пользователи смогут выполнить эту программу, но не смогут ее украсть (скопировать), поскольку им запрещено чтение. Включение пользователей в те или иные группы осуществляется системным администратором, которого обычно называют привилегированным пользователем. Привилегированный пользователь имеет право действовать вопреки механизму защиты и считывать, записывать и выполнять любой файл. Теперь посмотрим, как файлы и каталоги реализованы в системе UNIX. Более детальное описание см. в [212]. С каждым файлом (и с каждым каталогом, поскольку каталог — это тоже файл) связан информационный блок размером 64 байта, который называется индексным дескриптором (i-node). Индексный дескриптор содержит информацию о том, кто владеет файлом, что разрешено делать с файлом, где найти данные и т. п. Индексные дескрипторы для файлов расположены либо последовательно в начале диска, либо, если диск разделен на группы цилиндров, — в начале группы. Индексные дескрипторы снабжены последовательными номерами. Таким образом, система UNIX может обнаружить i-node просто путем вычисления его адреса на диске. Элемент каталога состоит из двух частей: имени файла и номера i-node. Когда программа выполняет следующую команду, система ищет текущий каталог файла foo.c, чтобы найти номер индексного дескриптора этого файла: open("f00.с", 0) Обнаружив номер i-node, программа может считать его и узнать всю информацию о файле. При большей длине пути файла процедура повторяется несколько раз, пока не будет пройден весь путь. Например, чтобы найти номер i-node для пути /usr/ast/data, система сначала отыщет корневой каталог для элемента usr. Обнаружив индексный дескриптор usr, она может прочитать файл (каталог в системе UNIX — это тоже файл). В этом файле она отыщет элемент ast и найдет номер i-node для файла /usr/ast. Считав информацию о местонахождении каталога /usr/ast, система сможет обнаружить элемент для data и, следовательно, — номер i-node для /usr/ast/data. Найдя номер i-node для этого файла, система узнает об этом файле все. Формат, содержание и размещение индексных дескрипторов несколько различаются в разных системах (особенно когда идет речь о сетевых системах), но следующие элементы присутствуют практически в каждом индексном дескрипторе: |