Помощь в написании студенческих работ
Антистрессовый сервис

Права доступа. 
Исследование механизмов безопасности в Linux-подобных ОС

РефератПомощь в написанииУзнать стоимостьмоей работы

Файлы в Linux Mint, как, впрочем, и процессы, созданные пользователем, имеют двух владельцев: пользователя и группу-пользователя. Кроме этого определяются права для прочих, то есть тех, которые не вошли в первые два списка. Каждый пользователь может быть членом сразу нескольких групп, одна из которых называется первичной, а все остальные — дополнительными. Наличие групп дает определенную гибкость… Читать ещё >

Права доступа. Исследование механизмов безопасности в Linux-подобных ОС (реферат, курсовая, диплом, контрольная)

Файлы в Linux Mint, как, впрочем, и процессы, созданные пользователем, имеют двух владельцев: пользователя и группу-пользователя. Кроме этого определяются права для прочих, то есть тех, которые не вошли в первые два списка. Каждый пользователь может быть членом сразу нескольких групп, одна из которых называется первичной, а все остальные — дополнительными. Наличие групп дает определенную гибкость в организации доступа к конкретному файлу. Например, чтобы разрешить запись дисков в Linux Mint, достаточно добавить пользователя в группу cdrom. Аналогично можно организовать совместное использование некоторого ресурса: достаточно создать новую группу и включить в нее всех, кому это действительно необходимо. Обычно владельцем файла является пользователь, который его создал, а владелец-группа устанавливается равной первичной группе пользователя, создавшего файл.

Просмотреть текущие права можно при помощи команды lsl:

lsl sound. mрЗ

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

sudo chown new_owner file1 file2 …

На месте названия файла может быть и имя каталога, но при этом владелец файлов внутри каталога не изменится, а чтобы это произошло, добавляем флагR. При использовании любой команды оболочки можно пользоваться регулярными выражениями, если есть необходимость отобрать файлы, удовлетворяющие определенному критерию:

sudo chownR Artem *

В примере владельцем всех файлов в текущем каталоге и подкаталогах будет пользователь Artem. Команда chown позволяет установить и группу-владельца. Для этого нужно сразу за именем владельца без пробелов и других знаков поставить двоеточие и написать название необходимой группы:

sudo chown — R artem: video *

Допускается и такой вариант записи:

sudochown — R: video *.

Кроме chown для изменения владельца группы можно использовать команду chgrp, синтаксис использования данной команды аналогичен предыдущей:

chgrp audio /home/Artem /*

Владение файлом определяет те операции, которые тот или иной пользователь может совершить над файлом. Самые очевидные из них — это изменение владельца и группы для некоторого файла. Данные операции может проделать суперпользователь и владелец файла (для некоторых — только суперпользователь). Все эти ограничения введены по нескольким причинам. Во-первых, для того чтобы никто не мог подсунуть какой-нибудь зловредный файл или скрипт, а во-вторых, чтобы, если на компьютере установлен лимит дискового пространства для конкретного пользователя, нельзя было превысить его, просто переопределив владельца.

Кроме владения файлом права доступа определяют базовые операции, которые можно совершить над файлом. Их три:

  • *Read — доступ на чтение;
  • *Write — доступ на запись;
  • *eXecute — доступ на выполнение.

Для установки соответствующих прав используется команда chmod. Применяется она в двух формах: абсолютной, когда игнорируются старые права и устанавливаются новые, и относительной, когда к имеющимся правам добавляются новые (или убираются старые). Абсолютная форма предполагает задание прав доступа в восьмеричной форме. Чтобы получить полный код необходимого режима файла, нужно просто сложить значения кодов, приведенных в таблице 2.1.

Таблица 2.1 — Режимы файлов.

Таким образом, команда.

chmod 755 file

устанавливает следующие права доступа: если это исполняемый файл, то запустить его на выполнение и прочитать содержимое имеют право все (то есть владелец, группа и остальные), а владелец дополнительно имеет право на изменение содержимого — запись.

Относительная форма команды требует конкретного указания классов доступа (и — владелец, g — группа, о — остальные, а — все вместе), соответствующие права доступа (r — чтение, w — запись, х — выполнение) и операцию, которую необходимо произвести для списка файлов (+ -добавить, — - удалить, = - присвоить) для соответствующего списка файлов. Например, команда.

sudo chmod u+w, ug+r, a+x file

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

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

Для каталогов права доступа имеют немного другой смысл. Каталог — это файл, содержащий имена всех файлов, которые имеются в данном каталоге. Право на чтение каталога позволяет всего лишь получить имена файлов, находящихся в данном каталоге. А вот для того, чтобы получить другую дополнительную информацию, нужно право на исполнение. Чтобы перейти внутрь каталога, необходимо иметь право на выполнение. Кстати, из-за наличия этих особенностей можно добиться так называемого эффекта dark directory, когда создаем в каталоге файлы, которые доступны, только если пользователь знает точно имя соответствующего файла. Право на запись для каталога позволяет изменять его содержимое, то есть удалять и записывать файлы, при этом права доступа к конкретному файлу игнорируются.

Права на доступ проверяются в следующей последовательности: суперпользователь, владелец, группа-владелец и прочие. Система при запросе нужного ресурса проверит, кем он запрашивается в приведенной выше последовательности, и допустит только к разрешенным операциям, дальнейшая проверка прав просто не будет проводиться.

Группу, в которую входит пользователь, можно изменить, отредактировав файл /etc/group. Внутри файл состоит из ряда строк вида.

cdrom: х: 24: oem

то есть в данной строке описана группа cdrom, в которую входит пользователь oem. Чтобы добавить в эту группу пользователя Artem, просто дописываем его логин через запятую:

cdrom: х: 24: oem, Artem

Цифра 24 означает GID (group id) — цифровое значение группы. Новая группа создается командой addgroup, учетная запись — adduser.

Кроме этого Linux Mint предлагает графический инструмент управления группами и учетными записями, который можно вызвать из меню «Администрирование» > «Пользователи и группы».

С его помощью можно очень просто добавить новую учетную запись или группу и установить членство в группах.

Данные об учетной записи хранятся в файле /etc/passwd. Формат такой:

User name: пароль: uid: gid: uid коментарий: домашний каталог: shell

Например:

Artem: х: 1000: 1000: Artem, ,,: / home / Artem: / bin / bash

Все обычные учетные записи имеют UID начиная с 1000.

Зачем это нужно? Например, необходимо рассмотреть данные устройства, выводящего звук:

lsl /dev/dsp

После чего в терминале отобразится следующее:

crw-rw——+ 1 root audio 14, 3 2010;06−10 11:59 /dev/dsp

То есть считать данные может только пользователь root и все, кто входит в группу audio. Следовательно, если у пользователя не проигрывается звук и система выдает, что не может получить доступ, необходимо просто проверить права. Справедливости ради нужно отметить, что права доступа имеет не пользователь, а процесс, запущенный им. Каждый пользователь, зарегистрировавшись в системе, получает свою копию текущего процесса shell, который имеет установленные идентификаторы RID и RGID — реальные идентификаторы пользователя и первичной группы пользователя. А все процессы, запущенные пользователем (дочерние), наследуют все переменные, в том числе RID и RGID.

Остались нерассмотренными три режима файла: бит сохранения задачи (stisky bit), а также флаги SUID и SGID. Со stisky bit все просто, этот бит указывает на необходимость сохранения копии выполняющейся программы в памяти после завершения выполнения. Данный режим позволяет сэкономить время на запуске программы при частом использовании, но в современных системах применение этого режима встречается редко.

Флаги SUID и SGID позволяют изменить (расширить) права пользователя (группы), запустившего программу, на время ее выполнения. Как уже говорилось, запущенное приложение имеет такие же права доступа к системным ресурсам, как и пользователь, запустивший программу. А установки этих флагов позволяют назначить права доступа исходя из прав доступа владельца файла. Следовательно, если владельцем запущенного приложения является root, то любой, независимо от того, кто запустил данное приложение, будет иметь права суперпользователя. Вместе с тем при установке флага SUID наследуются права владельца файла, a SGID — группы-владельца.

Буква s в выводе команды lsl означает, что установлен флаг SUID, а владельцем файла является — root, и теперь, кто бы ни запустил утилиту на выполнение, на время работы программы он временно получает права суперпользователя, то есть право произвести запись в защищенный системный файл. Естественно, утилита должна (и делает это) производить изменение учетной записи только запустившего ее пользователя.

Для установки битов SUID/SGID в символьной форме используется буква s, sticky bit устанавливается буквой — t, а с помощью буквы l можно установить блокировку файла для устранения возможных конфликтов, когда несколько процессов попытаются работать с одним и тем же файлом.

Обычно sticky bit установлен в каталоге /tmp. Это сделано для того, чтобы удалить файл мог только пользователь, создавший его. При установке бита SGID для каталога все вновь созданные файлы будут теперь наследовать группу не по пользователю, создавшему его, а по группе — владельцу каталога.

Показать весь текст
Заполнить форму текущей работой