Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LINUX.docx
Скачиваний:
5
Добавлен:
12.09.2019
Размер:
255.8 Кб
Скачать

Особенности доступа к каталогам

Каталог — это особый тип файла. Его содержание — это список других файлов. Каталоги имеют те же «биты прав», что и остальные файлы. Однако то, что эти права означают может быть не таким простым для понимания.

Если каталог можно читать (r), то это означает, что разрешено только узнать список файлов, содержащихся в этом каталоге. Только список файлов, но не их свойства (размер, права доступа и др.).

Если каталог можно исполнять (x), то это означает, что в него можно заходить и просматривать содержимое файлов (доступ к которым разрешен для данной категории), узнавать свойства (атрибуты) файлов. Можно изменить содержимое файла (если его разрешено менять), но не имя файла.

Если каталог можно изменять (w), то это означает, что в нем можно изменять файлы, их имена, удалять их. Опасность! Это можно делать даже с файлами, доступ к которым запрещен для данной категории. Лечение! Вводят дополнительный t-бит. При его наличии пользователь может изменять только свои файлы.

Следует понимать, что:

  • доступ к конкретному файлу также зависит от наличия доступа на исполнение к каталогам на протяжении всего пути;

  • изменять существующие файлы можно, не имея доступа на запись в каталог, достаточно иметь доступ на запись самого файла.

Изменение прав доступа

Изменение прав доступа к указанному файлу (или каталогу) выполняется с помощью команды chmod .

При создании каталога также можно сразу указать права доступа к нему с помощью команды mkdir -m.

Изменение владельца и группы файлов выполняется с помощью команды chown . Группу также пожно назначить командой chgrp .

Тем же побитовым представлением атрибутов регулируются и права доступа по умолчанию при создании файлов и каталогов. Делается это с помощью команды umask. Единственный параметр umask — восьмеричное число, задающее атрибуты, которые не надо устанавливать новому файлу или каталогу. Так, umask 0 приведёт к тому, что файлы будут создаваться с атрибутами «rw-rw-rw-», а каталоги — «rwxrwxrwx». Команда umask 022 убирает из атрибутов по умолчанию права доступа на запись для всех, кроме хозяина (получается «rw-r--r--» и «rwxr-xr-x» соответственно), а с umask 077 новые файлы и каталоги становятся для них полностью недоступны («rw-------» и «rwx------»).

Специальные атрибуты файлов

В файловой системе Linux присутствует поддержка дополнительных флагов или по другому "атрибутов" для файлов в ядрах начиная с серии 1.1. Файловая система в ядрах серий 2.2 и 2.4. позволяет работать со следующим набором атрибутов:

-A

Atime система не апдейтит atime(access time) для данного файла.

-S

Sync система фиксирует все изменения, происходящие в данном файле на физическиом диске синхронно с приложением изменяющим данный файл.

-a

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

-i

Immutable система запрещает любые изменения данного файла. В случае директории, процессы могут модифицировать файлы уже содержащиеся в данной директории, но не могут удалять файлы или создавать новые.

-d

No Dump программе создающей дампы дается указание игнорировать данный файл во время создания backup.

-c

Compress система применяет прозрачную компрессию для данного файла. Т.е. чтение из него дает уже декомпрессованые данные и предварительно перед записью на диск производится их сжатие.

-s

Secure Deletion удаление такого файла сопровождается перезаписью блоков диска,на которых он располагался нулями.

-u

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

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

В таблице ниже приведено соответствие, как различные версии ядра учитывают каждый атрибут:

* позволяет устанавливать флаг и учитывает его значение

i позволяет устанавливать флаг,но игнорирует его значение

- полностью игнорирует флаг

/

1.0

1.2

2.0

2.2

2.4

A

-

-

*

*

*

S

*

*

*

*

*

a

-

*

*

*

*

i

-

*

*

*

*

d

-

*

*

*

*

c

i

i

i

i

i

s

*

*

i

i

i

u

i

i

i

i

i

В некоторых версиях разработчики исключили атрибут 'secure deletion', поскольку, на их взгляд, его использование повышает общую безопасность лишь незначительно.

Флаг 'A' или 'atime' для определенных файлов может дать некоторую прибавку производительности, так как избавляет систему от необходимости апдейтить access time для этих файлов каждый раз, когда их открывают на чтение.

Атрибут 'S' или 'synchronous' предоставляет новый уровень поддержки целостности данных. Но поскольку все изменения в файлах немедленно сохраняются на диске несколько понижается производиельность.

Основное внимание мы уделим флагу 'a' ('append only') и 'i' ('immutable'), так как их использование дает наиболее ощутимые приемущества в плане обеспечения безопасности и целостности файловой системы.

Различные open source BSD системы, такие как FreeBSD и OpenBSD, с некоторых пор поддерживают аналогичные флаги в своих файловых системах (UFS и FFS соответственно) и частично решение о реализации аналогичных спецвозможностей в Linux основывается на этом положительном опыте.

Изменение специальных атрибутов файла выполняется с помощью команды chattr.

Просмотр специальных атрибутов файла выполняется с помощью команды lsattr.

Подробную информацию о файле или каталоге можно получить с помощью команды stat.

Изменить временные метки файлов или директорий можно с помощью команды touch.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]