Свободные программы и системы в школе

ОглавлениеДобавить в закладки К обложке

«=» – установить права, в точности соответствующие назначаемым.

Назначаемые правомочия обозначаются последовательностями уже известных нам букв «rwx»-нотации «r», «w», «x», соответствующим правам на чтение, запись и исполнение.

Таким образом,

«chmod u-w файл» отнимет правомочие записи у владельца;

«chmod g+rw файл» добавит правомочия чтения и записи группе-владельцу;

«chmod go=r» установит правомочия группы-владельца и прочих пользователей в точности равными «только чтению»;

«chmod a+x» добавит правомочие исполнения всем пользователям;

«chmod u=rwx,g=rw,o=r» установит правомочия чтения, записи и исполнения для пользователя, чтения и записи для группы и чтения для всех остальных.

Маска прав по умолчанию

Когда пользователь создает файл (командой «touch» или перенаправлением вывода другой команды), права доступа к нему устанавливаются равными маске прав по умолчанию, за исключением того, что правомочие исполнения обычному файлу не присваиваются. Права по умолчанию задаются командой «umask».

Команда «umask -S» без параметров выводит в символическом виде маску прав по умолчанию. Команда «umask» с параметром в «ugo»-нотации (такой же, как у команды «chmod») добавляет, отнимает или устанавливает права в маске прав.

Рис. 1-41

В примере на Рис. 1-41 Алиса выводит маску, создает файл «файл_1», убеждается в том, что права на вновь созданный файл соответствуют маске, отнимает у прочих пользователей вновь создаваемых файлов правомочие чтения, создает файл «файл_2» и убеждается в том, что права на него соответствуют новому значению маски.

Утилита «umask» не является файловой и изменение значения маски не влияет на права существующих файлов. Значение маски сохраняется до нового их изменения командой «umask» или конца сеанса работы с оболочкой.

Особенности прав на каталоги

Следующий пример может показаться контринтуитивным.

Рис. 1-42

У Алисы нет прав на запись в файл «файл». Тем не менее, она может удалить его командой «rm» (Рис. 1-42).

Но никакого парадокса в этом нет. Удаление файла не является изменением его содержания. Удаление файла – это изменение каталога, в котором он содержится и, соответственно, разрешение или запрещение удаления файла зависит не от прав на него, но от прав на каталог (мы помним, что каталог – это тоже файл).

Рис. 1-43

В примере на Рис. 1-43 Алиса создает каталог «каталог_1», создает в нем файл «файл_1», отнимает у владельца (себя) права на запись, тем не менее, удаляет его, затем создает такой же файл и отнимает у себя права на запись в этот каталог. После этого попытка удаления файла приводит к выводу сообщения о нехватке прав для совершения этой операции.

Соответственно, и создать файл в каталоге, прав записи на который у нее нет, она не сможет33.

Обратите внимание, что отсутствие права записи в каталог не отнимает у Алисы права на изменение содержимого находящихся в нем файлов (Рис. 1-44).

Рис. 1-44

Это вполне логично, т.к. изменение содержимого никак не влияет на запись в каталоге. Однако здесь есть одна тонкость. Обратите внимание, что первая команда «ls -l» показала длину файла равной 0 байт (что естественно, т.к. этот файл создавался как пустой), а вторая – 4 байта. Разве информация о длине файла не является частью записи о нем в каталоге?

Вся правда о файлах

Дело в том, что понятие о файлах и их «нахождении» в каталоге выше давалось нами в несколько упрощенной форме. Если быть точными, каталог содержит не «файлы», а записи о файлах, вполне подобно тому, как библиотечный каталог содержит не книги, а записи о книгах (или библиографические карточки), а сами книги хранятся на полках34. Часть полей, выдаваемых командой «ls -l», относится к файлу как единице хранения («книге на полке»), а часть – к записи о нем в каталоге («библиографической карточке»).

Атрибутом записи о файле в каталоге является поле «имя».

Атрибутам файла как единицы хранения (его называют индексным узлом или и-узлом) соответствуют поля «тип и права», «количество указателей», «владелец», «группа-владелец», «размер», «время модификации».


Логин
Пароль
Запомнить меня