Astra linux локальные группы

Разграничение доступа в Linux. Знакомство с Astra Linux

Всем доброго времени суток, сегодня мы поговорим о моделях разграничения доступа в семействе ОС Linux, а также начнем знакомство с отечественной ОС Astra Linux SE. Данная статья является первой в цикле и предназначена для людей, только начинающих постигать Linux во всем его многообразии.

Для начала стоит ответить на вопрос: почему именно Astra? Согласно отзывам и моему собственному опыту это далеко не самая удобная система для постоянного использования. Однако тут все не так просто, ведь еще 5 апреля 2013 г вышел закон №44-ФЗ «О контрактной системе в сфере закупок товаров, работ, услуг для обеспечения государственных и муниципальных нужд», согласно которому все государственные и муниципальные органы, органы управления и прочие гос. организации обязаны закупать отечественное ПО. А это значит, что с каждым годом вероятность столкнуться лицом к лицу с отечественными ОС только возрастает. Именно поэтому я решил поделиться своим знаниями и опытом.

1.Основные способы разграничения доступа

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

Всего есть 2 вида моделей разграничения доступа: дискреционная и мандатная.

Дискреционное управление доступом

Эта модель в том или ином виде реализована почти во всех современных *nix-системах. В англоязычных ресурсах можно встретить название DAC (Discretionary Access Control). Суть ее заключается в управлении доступом субъектов к объектам на основе списков управления доступом. Дискреционное управление доступом в ОС проекта GNU/Linux основано на понятии владения (использовании права доступа владения) файлом, процессом, каталогом (сущностями и субъект-сессиями). Так, с каждым файлом или каталогом связана учётная запись пользователя — их владельца ( owner ). Процесс, который функционирует от имени такой учётной записи-владельца сущности, имеет право изменять дискреционные права доступа к ней, например назначать их учётным записям других пользователей ОС на основе стандарта POSIX ACL . Однако зачастую настраивать права доступа для каждой учетной записи бывает затруднительно и поэтому пользователей объединяют в группы, которым тоже можно назначить права доступа.

Так в чем же заключается стандарт POSIX ACL?

POSIX ACL – POSIX-совместимый стандарт определения разрешений на доступ к объектам, основанный на списках контроля доступа (ACL – Access Control Lists). Он реализует несколько вариантов дискреционной модели, отличающихся уровнем функциональности и методами хранения списков контроля доступа.

Читайте также:  Установить несколько операционных систем linux

ACL – Access Control Lists

Как видно из схемы, существует 2 вида атрибутов для вышеупомянутого стандарта. Давайте разберем каждый из них.

2.Minimal POSIX ACL. Список контроля на уровне inode файла

В метаданных каждого объекта (в inode файла/директории) содержится список разрешений на доступ к нему для разных категорий субъектов.

Атрибуты Minimal ACL поддерживают три базовых класса субъектов доступа к файлу (класс All объединяет все три класса):

Для каждого из этих классов определены три типа разрешений:

Список разрешений Minimal ACL представлен в inode файла (директории) девятью байтами (символами) . Каждый байт определяет одно из разрешений (символы r, w, x) или их отсутствие (символ «-»).Байты разрешений сгруппированы в следующие классы:

Список разрешений Minimal ACL

Теперь рассмотрим способы смены прав доступа на практике:

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

Вывод команды

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

Для директорий трактовка типов разрешений иная:

r – разрешение на « открытие » директории, то есть на чтение списка файлов , которые содержит эта директория.

w – разрешение на модификацию этого списка файлов (создание/удаление/переименование/перемещение) файлов этой директории.

x – разрешение на « исполнение » директории, то есть на возможность перейти в нее .

Чтобы изменить расширения для определенного файла используется команда chmod с соответствующими аргументами:

Принцип работы chmod

chmod o=r test.file – установка разрешения «чтение» для остальных пользователей (не владельцев объекта), вне зависимости какие разрешения были установлены ранее

chmod g+rw test.file – добавление разрешений «чтение» и «запись» для группы, владеющей файлом

Также Minimal ACL имеют числовое представление (Numeric Notation) в виде трех восьмеричных чисел. Эти числа определяют разрешение на доступ к файлу или директории трех субъектов доступа (u,g,o). Каждое из них формируется путем суммирования восьмеричных значений необходимых разрешений:

Например, полный доступ (rwx) – это: 4+2+1=7

Таким образом, можно задать разрешения для файла следующим образом:

chmod 0740 test.file , что будет соответствовать атрибутам -rwxr——

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

Например для файла /etc/shadow любой пользователь может записать в него хеш своего пароля

Читайте также:  Регулятор яркости linux mint

Смена разрешений

Такая смена разрешений называется изменение режима доступа .

Она реализуется установкой специальных флагов в зарезервированном десятом байте списка Minimal POSIX ACL или заменой ими байтов разрешений

Флаг -t (sticky bit). Устанавливается в разрешениях директорий и разрешает манипулирование файлами внутри этих директорий только их владельцам

Флаг -s (флаг режимов SUID и SGID). Устанавливается вместо разрешения « x » у владельца (режим SUID ) и/или владеющей группы (режим SGID ) и разрешает исполнение этого файла с разрешениями его владельца и/или владеющей группы , а не с разрешениями пользователя, запустившего файл.

3.Extended POSIX ACL (EA). Расширенные списки контроля доступа

Вполне естественно, что такая простая схема, как в Minimal POSIX ACL имеет ряд недостатков. Самый явный из них, это отсутствие гибкости при совместном доступе субъектов к объектам. К тому же, списки доступа Extended POSIX ACL создаются и хранятся в системных таблицах ядра ОС.

Основой Extended POSIX ACL является понятие «именованный пользователь (группа)» (named user (group), что позволяет нам выдавать отдельный набор разрешений для конкретных пользователей или групп.

Отличие Extended POSIX ACL от Minimal ACL

Для работы с Extended POSIX ACL используются следующие команды:

Просмотр: системный вызов getfacl

Вывод getfacl

Установка: системный вызов setfacl

Установка setfacl

Пример вызова

4. В заключение

На этом рассмотрение дискреционной модели доступа закончено, однако остался один вопрос: а причем тут Astra Linux? Дело в том, что в ней, помимо дискреционной модели доступа, реализована еще и мандатная модель доступа, а также контроль целостности файлов, что усиливает защищенность системы. Astra Linux также сертифицирована ФСТЭК и ФСБ для работы с гос. тайной, что постепенно приносит ей известность и предоставляет возможность использования в государственном секторе.

Источник

Группы пользователей в Linux: создаем группы, добавляем и удаляем из них пользователей

Перевод статьи «Linux User Groups Explained: How to add a new group, a new group member, and change groups».

Стая фламинго

Linux позволяет многочисленным пользователям работать в системе одновременно. Установка прав доступа защищает пользователей друг от друга. Для объединения пользователей с одинаковыми правами доступа создаются группы. Члены этих групп могут, например, иметь доступ к каким-то файлам или устройствам, в то время как для остальных пользователей доступ будет закрыт.

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

Группы бывают двух основных видов: первичные и вторичные. Первичная группа это основная группа пользователя, установленная для него по умолчанию, с ней связан его аккаунт. Директории и файлы, создаваемые пользователем, имеют Group ID именно этой, первичной группы. Любая другая группа (а их может быть много), в которую входит пользователь, является вторичной.

Читайте также:  Linux mint репозиторий yandex

Создание групп

Давайте создадим две группы: «writers» («писатели») и «editors» («редакторы»). Для этого используется команда groupadd. (Возможно, потребуется также поставить sudo в начале команды, чтобы получить право создавать группы).

groupadd writers groupadd editors

Создание пользователей

Возможно, у вас уже есть пользователи, которых вы могли бы добавить в только что созданные группы. Если нет, вот базовый синтаксис для создания пользователя при помощи команды useradd:

useradd [опции] имя_пользователя

Ниже представлена команда для создания пользователя по имени «quincy». Флаг -m нужен для создания домашней директории пользователя (для ее названия используется имя пользователя). Флаг -p позволяет задать пароль для пользователя, в данном случае — «p4ssw0rd».

useradd -m quincy -p p4ssw0rd

Позже пользователь сможет изменить свой пароль при помощи команды passwd. Для этого ему понадобится ввести текущий пароль и новый.

Добавление пользователя в группу

Для добавления пользователя в группу используется команда usermod. Давайте добавим пользователя «quincy» в группу «writers». Опция -a означает «append» («добавить», «прикрепить»), а опция -G служит для указания названия вторичной группы.

usermod -a -G writers quincy

Когда вы создаете пользователя при помощи команды adduser, для него автоматически создается первичная группа, носящая его имя. Поэтому в настоящее время пользователь «quincy» состоит в первичной группе «quincy» и вторичной «writers».

Также можно добавить пользователя сразу в несколько групп, перечислив их через запятую без пробелов (-G group1,group2,group3).

А эта команда изменит первичную группу пользователя quincy на группу «editors»:

Группа пингвинов

Удаление пользователя из вторичной группы

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

При помощи команды id смотрим, в каких группах состоит пользователь (опция -n нужна для вывода названий групп, а не их ID).

Предположим, мы увидели, что пользователь quincy состоит в группах «editors» и «writers». Если мы хотим удалить его из группы «writers», мы можем воспользоваться следующей командой:

Эта команда очень похожа на ту, которой мы установили для пользователя quincy вторичную группу «editors». Но поскольку мы сейчас не использовали флаг -a, предыдущий список групп просто перезаписался, и теперь в нем нет группы «writers».

Заключение

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

Источник

Оцените статью
Adblock
detector