Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Комбинированные права доступа




 

Логические объекты файловой системы (файлы) являются носителями своеобразных меток, которые привычно называют правами доступа. Некоторые метки действительно означают право выполнения определенного действия пользователя над этим объектом. Другие обозначают состояние защиты или невосприимчивость по отношению к определенным действиям. Третьи гарантируют в ходе предписанных действий наступление конкретного результата.

Существует 4 метки выполнения определенного действия пользователя над файловым объектом, которые соответствуют первичным правам на доступ к файлам:

· r (read) – право чтения файла, т. е. возможность его считывания из памяти в целях отображения или воспроизведения;

· w (write) – право на запись и сохранение в файле своих данных, в том числе с возможностью замены и удаления уже имеющейся там информации;

· x (execute) – право на запуск (исполнение) файла;

· (owner) – право на владение и распоряжение файлом. На самом деле это не отдельная метка, а проверка условия (UID процесса = UID объекта). Владелец файла имеет на него полные права, включая право на удаление (при наличии права на запись в каталог) и изменение прав доступа к файлу.

Пятым первичным правом можно считать право суперпользователя. Наличие у пользователя идентификатора UID = 0 позволяет ему манипулировать объектами без проверки прав доступа.

Из меток невосприимчивости к действиям следует отметить:

· i(i mmutable) – свойство сохранности файла в неизменном виде. Как уже указывалось выше, оно обеспечивается дополнительным атрибутом файла, устанавливаемым командой chattr +i;

· а (a ppendable) – запрет любых операций, кроме добавления данных.

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

На основе первичных прав с добавлением дополнительных свойств можно синтезировать несколько производных прав:

· s (s uid) – комбинированное право на запуск программы от имени ее владельца. Обеспечивается при наличии основного права владельца на запуск файла и дополнительного бита SUID;

· t (s t icky) – комбинированное право защиты файлов от удаления пользователем, не являющимся владельцем этих файлов. Устанавливается только для каталога, в который пользователи имеют право записи и исполнения;

· c (c reate) – право создания файла в определенном каталоге. Состоит из прав записи и входа в этот каталог;

· d (d elete) – право на удаление файла из определенного каталога. Также состоит из прав записи и входа в этот каталог, а при установленном «флажке» t – право на удаление файла его владельцем;

· cp (c o p y) – право копирования файла в другой каталог. Кроме права чтения файла, требует прав поиска и чтения в исходном каталоге, а также прав поиска и записи в целевой каталог;

· mv (m o v e) – право перемещения файла в другой каталог. Кроме права чтения файла, требует полных прав на исходный каталог, а также прав поиска и записи в целевой каталог;

· ln (link) – право создания непосредственных («жестких») ссылок на существующие файлы. Требует прав поиска и записи в каталоге, где создается жесткая ссылка.

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

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

Сложные права доступа можно изображать в виде булевых соотношений в аналитической или табличной форме. Например, требуется скопировать файл ./a/b/file1 в каталог ./c/d. Минимально необходимые права на файл и каждый из каталогов определяются с помощью булева выражения:

cp = a(rwx) & b(rwx) & c(rwx) & d(rwx) & file1(rwx),

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

cp = a(001) & b(101) & c(001) & d(011) & file1(100)

В случае, если известно имя копируемого файла, права на чтение в каталоге b уже не требуется:

cp = a(001) & b(001) & c(001) & d(011) & file1(100)

Аналогично могут быть заданы логические условия для перемещения файла ./a/b/file1 в каталог ./c/d:

mv = a(001) & b(111) & c(001) & d(011) & file1(100)

Для удаления своего файла ./a/b/file2, имя которого предварительно нужно прочесть,необходимы права только на каталоги:

rm = a(001000000) & b(111000000)

Если пользователь знает имя своего файла, который он намеревается удалить, и может без ошибки записать его в командной строке, права на чтение из подкаталога b ему может не потребоваться:

rm = a(001000000) & b(011000000)

Для удаления чужого файла ./a/b/file2 потребуются следующие права:

rm = a(001001000) & b(0001111010000),

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

Для создания жесткой ссылки на чужой файл ./a/b/file3 из другого каталога ./c/d также не требуется прав на сам файл:

ln = a(001001000) & b(101101000) & c(001??????) & d(011??????)

Аналогично можно записать булевы выражения для иных сравнительно сложных операций.

 




Поделиться с друзьями:


Дата добавления: 2015-03-31; Просмотров: 475; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.