Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка ПО ОСРВ заочники.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
8.72 Mб
Скачать

3.9.3. Число ссылок на файл

Назначение этого атрибута будет рассмотрено в следующей главе. Если говорить кратко, то число ссылок соответствует числу обращений к файлу в разных каталогах. Если файл оказывается представлен в трех местах, в различных каталогах, то число ссылок будет равно 3.

Для увеличения значения счетчика ссылок нужно создать новые ссылки. (Вы можете ис­пользовать для этого системный вызов link.) Для уменьшения значения счетчика ссылок, необходимо удалить какое-то число ссылок. (Вы можете использовать для этого систем­ный вызов unlink.)

3.9.4. Собственник и группа для файла

У каждого файла есть собственник. Для внутреннего представления в Unix собственник представлен числовым значением UID, а группа, использующая файл, представлена 1 числовым значением GID.

Установление собственника файла. В самом простом толковании собственник файла -F это пользователь, который создал файл. Но файлы создают не люди, а ядро. Ядро создает файл, когда в процессе выполняется системный вызов creat. Когда ядро создает файл, оно I устанавливает в качестве собственника файла эффективный UID процесса, который вы-I полнял вызов creat. Значение эффективного UID процесса обычно равно значению UID i того, кто породил процесс. Если в программе процесса был установлен разряд set-user-ID, I то эффективный UID будет равен значению того пользователя, кто является собственни-I ком этой программы. Все ясно?

Установление группы для файла. Обычно в качестве группы для файла устанавливается эффективный GID процесса, который создает файл. Но иногда значением GID для файла Г становится значение GID родительского каталога.

Ну, как? Такие действия напоминают процедуру, как если бы национальность устанавли-! валзеь по месту вашего рождения и не принимались во внимание ваши родители, которые г вас и создали. В системе делается нечто напоминающее эту процедуру.

Изменение собственника и группы для файла. Программа может изменять собственника | и группу для файла с помощью системного вызова chown. Например:

chown(«file1», 200,40);

Здесь происходит изменение пользовательского ID на 200, значение группового ID заме­няется на 40 для файла с именем filel. Если какой-либо аргумент будет иметь значение -1, > то этот атрибут не модифицируется. Обычно пользователи не меняют собственника файла. Суперпользователь может установить в любой момент и для любого файла требуемое значение пользовательского ID и группового ID. Этот вызов обычно используется для установки и управления пользовательскими входами в систему. Собственник файла может изменить групповой ID файла в любой группе, к которой он принадлежит.

В итоге мы имеем следующую таблицу с характеристиками вызова:

chown

НАЗНАЧЕНИЕ

Изменение собственника или группового ID для файла

INCLUDE

#include < unistd.h >

ИСПОЛЬЗОВАНИЕ

int chownfchar *path, uidj owner, gidj group)

АРГУМЕНТЫ

path - путь к файлу

owner - пользовательский ID для файла

КОДЫ ВОЗВРАТА

group - групповой ID для файла -1-при ошибке 0 - при успехе

Команды Shell для изменения идентификаторов пользователя и группы для файлов

В shell есть обычные команды chown и chgrp, с помощью которых программы могут моди-И фицировать пользовательский ID и групповой ID для файлов. В одной команде с помощью И этих команд можно изменять UJD и GID для нескольких файлов. В документации изложе-fj ны все детали. В командах chown и chgrp пользователи могут задавать идентификаторы илЯ в числовом варианте, или в символьном - как имена пользователей и имена групп.