Лекция
Привет, Вы узнаете о том , что такое управление правами доступа к ресурсам в unixlinux, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое управление правами доступа к ресурсам в unixlinux , настоятельно рекомендую прочитать все из категории Криптография и криптоанализ, Стеганография и Стегоанализ.
Основу безопасности ОС семейства Unix составляют пользователи системы. Пользователи обладают определенными правами, они владеют файлами, от их имени запускаются системные и прикладные процессы. Причем набор функций, системных вызовов и операций, которые может выполнять процесс зависит от прав пользователя, запустившего этот процесс. Все зарегистрированные в системе пользователи учитываются в файле /etc/passwd. Каждый пользователь системы имеет регистрационное имя (login name). Однако система различает пользователей не по именам, а по ассоциированным с ними уникальным идентификаторам пользователей или UID (User Identifier). Также каждый пользователь является членом одной или нескольких групп. Группы описываются в файле/etc/group. Каждая группа имеет уникальное имя и уникальный идентификатор группыGID (Group Identifier). В файле /etc/passwd указывается идентификатор первичной группы пользователя. Таким образом UID и GID определяют, какими правами обладает пользователь в системе. Среди всех пользователей особое положение занимает пользователь с UID=0, или так называемый суперпользователь. Данный пользователь обычно имеет регистрационное имя root, однако в системе может быть несколько пользователей с UID=0 и различными именами. Суперпользователь обладает неограниченными правами и может выполнять над файлами и процессами любую допустимую операцию. Кроме того, некоторые системные вызовы и операции может выполнять только суперпользователь. Например, следующие операции доступны лишь суперпользователю: создание файлов устройств, изменение системного времени, увеличение лимитов на использование ресурсов, увеличение приоритетов процессов,задание сетевого имени, конфигурирование сетевых интерфейсов, останов и перезагрузка системы. Администратору следует проявлять большую осторожность при работе под именем суперпользователя, поскольку неосторожные действия могут привести к необратимым последствиям. Также во многих системах существует специальная привилегированная группа с GID=0 и именем wheel. Некоторые операции, например выполнение команды su, доступны только пользователям, являющимся членами этой группы. Кроме имени пользователя и идентификаторов в файле /etc/passwd содержатся также: зашифрованный пароль пользователя, домашний каталог пользователя и интерпретатор команд. Алгоритм шифрования пароля зависит от конкретной версии системы и является однонаправленным алгоритмом шифрования. Например, в системе FreeBSD используется алгоритм MD5. Следует особо отметить, что в открытом виде пароль никогда и нигде не хранится. При входе пользователя в систему введенный им пароль шифруется и сравнивается два зашифрованных варианта. Даже суперпользователь не может узнать пароль какого-либо пользователя, однако он может сменить пароль любого пользователя с помощью утилиты passwd. Данная утилита также позволяет обычным пользователям менять их пароли. Если в файле паролей вместо зашифрованного пароля стоит символ ‘*’, то такой пользователь не сможет войти в систему. Если же поле пароля пустое, то пользователь сможет войти в систему, введя пустой пароль. Даже в зашифрованном виде файл паролей предоставляет некоторую угрозу безопасности, поскольку возможен подбор паролей, например, с использованием словаря. Поэтому во многих системах пароли были перенесены из файла /etc/passwd в другие файлы. Например, во FreeBSD пароли находятся в файле /etc/master.passwd, а в Solaris и Linux в /etc/shadow. Оба этих файла доступны только суперпользователю и недоступны другим пользователям системы даже для чтения. При входе пользователя в систему запускается указанный в файле/etc/passwd интерпретатор команд. Обычно это один из стандартных командных интерпретаторов /bin/sh (Bourne shell), /bin/csh (C shell), /bin/ksh (Коrn shell) или/bin/bash (Bourne shell again), позволяющих пользователю вводить команды и запускать задачи. Для пользователей, которым не нужен интерпретатор в этом поле можно указать, например, /sbin/nologin,/nonexistent (для псевдопользователей) или /bin/date (для удаленных пользователей). В общем случае в этом поле может быть указана любая программа, важно то, что, завершив выполнение этой задачи, пользователь автоматически выйдет из системы. В файле /etc/shells содержится список программ, которые могут быть использованы в качестве командного интерпретатора.
Как уже было отмечено, пользователи в ОС семейства Unix могут владеть файлами. Об этом говорит сайт https://intellect.icu . Следует отметить, что в Unix файловая подсистема обеспечивает унифицированный интерфейс доступа к данным, расположенным на дисковых накопителях, и к периферийным устройствам. Т.е. доступ ко всем устройствам осуществляется через специальные файлы устройств. В ОС семейства Unix файлы имеют двух владельцев: владельца-пользователя ивладельца-группу. Владельцем-пользователем вновь созданного файла является пользователь, создавший файл. Владелец-группа для вновь созданного файла определяется по-разному в различных версиях систем. В BSD-версиях UNIX владелец-группа определяется по группе, владеющей каталогом, в котором создается файл. В AT&Tсистемах владельцем-группой становится первичная группа, которой принадлежит пользователь, создавший файл.
В Unix существуют три базовых класса доступа к файлу:
u – класс доступа для пользователя-владельца;
g – класс доступа для группы-владельца;
о – класс доступа для остальных пользователей.
Для каждого класса Unix поддерживает три типа прав доступа:
r – право на чтение;
w – право на запись;
x – право на исполнение.
Список прав доступа можно получить с помощью утилиты ls –l. Например:
- rwx rw- r- - 1 root wheel 1077 Jun 1 18:05 /usr/home/sergey/myinfo
Из приведенного примера видно, что для файла /usr/home/sergey/myinfoвладельцем-пользователем является root, владельцем группой – wheel, права для владельца-пользователя rwx, владельца-группы rw, и для остальных пользователей r. Первый символ указывает тип файла: ‘d’ – каталог, ‘с’ – файл байт-ориентированного устройства, ‘b’ - файл блок-ориентированного устройства, ‘s’ – сокет, ‘p’- именованный канал, ‘l’ – символическая ссылка.
Права доступа могут быть изменены только владельцем файла или суперпользователем при помощи утилиты chmod. Изменить владельца-пользователя и владельца-группу может только суперпользователь при помощи утилит chown и chgrp.
Общий формат chmod следующий:
u
g + r
chmod o - w file1 file2 ….
a = x
В качестве аргументов указываются классы доступа (‘u’- владелец-пользователь, ‘g’ - владелец-группа, 'о' — остальные пользователи, 'а' — все классы пользователей), права доступа ('r' - чтение, ‘w’ - запись и 'х' - выполнение) и операция, которую необходимо произвести (‘+’ - добавить, ‘-‘- удалить и ‘=’ - присвоить) для списка файлов file1, file2 и т. д. Например
chmod u+w,og+r-wxtext1 text2
Также можно установить сразу все девять прав доступа, используя числовую форму команды. Число определяется следующим образом: нужно представить права доступа в двоичном виде (0 — отсутствие соответствующего права, 1 — его наличие) и каждую триаду, соответствующую классу доступа, в свою очередь преобразовать в десятичное число. Допустим chmod 754 * эквивалентно chmod u=rwx,g=rx,o=r *(rwx=111b=7; r-x=101b=5; r--=100b=4 )
Значение прав доступа различно для разных типов файлов. Для файлов операции, которые можно производить, следуют из самих названий прав доступа. Например, чтобы просмотреть содержимое файла командой cat, пользователь должен иметь право на чтение(r). Редактирование файла, т. е. его изменение, предусматривает наличие права на запись(w). Наконец, для того, чтобы запустить некоторую программу на выполнение, необходимо иметь право на исполнение (х). Исполняемый файл может быть как скомпилированной программой, так и скриптом командного интерпретатора shell. В последнем случае для выполнения необходимо иметь также право на чтение, поскольку при выполнении скрипта командный интерпретатор должен иметь возможность считывать команды из файла. Все сказанное, за исключением права на выполнение, справедливо и для других типов файлов: специальных файлов устройств, именованных каналов и сокетов. Для символических связей права доступа вообще не используются, поскольку контролируются целевым файлом (для символических связей права всегда равны lrwxrwxrwx).
Для каталогов система трактует права доступа несколько по-другому. Право чтения каталога позволяет получить имена файлов (точнее только имена и их индексные дескрипторы), находящихся в данном каталоге. Чтобы получить дополнительную информацию о файлах каталога (например, подробный листинг команды ls -l), необходимо иметь право на выполнение для каталога. Это право также необходимо, чтобы получить доступ к содержимому файла (например, прочитать его с помощью команды cat) и для того, чтобы перейти в каталог, т.е. сделать его текущим с помощью команды cd. Кроме того, для того чтобы сделать каталог текущим, право на выполнение необходимо иметь для всех каталогов на пути к указанному. Права r и x действуют независимо, право х для каталога не требует наличия права r, и наоборот. Комбинацией этих двух прав можно добиться интересных эффектов, например, создания «темных» каталогов, файлы которых доступны только в случае, если пользователь заранее знает их имена, поскольку получение списка файлов таких каталогов запрещено. Создание, удаление и переименование файлов требует наличия прав w и x на каталог. При этом при удалении файлов не учитываются права доступа для самого файла. Т.е. если пользователь имеет право w на каталог, то он может удалить в нем файл, на который не имеет никаких прав. Можно изменить подобное поведение операционной системы с помощью специальных дополнительных флагов, которые будут рассмотрены ниже.
Операционная система UNIX производит проверку прав доступа при создании, открытии (для чтения или записи), запуске на выполнение или удалении файла. При этом выполняются следующие проверки:
1. Если операция запрашивается суперпользователем (с UID=0), доступ разрешается. Никакие дополнительные проверки не производятся. Это позволяет администратору иметь неограниченный доступ ко всей файловой системе.
2. Если операция запрашивается владельцем файла, то доступ разрешается при условии, что требуемое право доступа определено для владельца-пользователя, в противном случае доступ запрещается.
3. Если операция запрашивается пользователем, являющимся членом группы, которая является владельцем файла, то доступ разрешается при условии, что требуемое право доступа определено для владельца-группы, в противном случае доступ запрещается.
4. Если требуемое право доступа для прочих пользователей (other) установлено, доступ разрешается, в противном случае доступ запрещается.
Система проводит проверки именно в указанной последовательности. Например, если пользователь не является владельцем файла, но является членом владельца-группы, то доступ определяется исключительно из прав владельца-группы, права, указанные для остальных пользователей, не проверяются. Например,
-rwx --- r--2root guest 1056 Jun 1 19:13special.info
Если пользователь gstuser является членом группы guest, то доступ к файлуspecial.info для него будет запрещен, хотя все остальные пользователи, не входящие в эту группу, имеют право чтения на этот файл. Эта возможность позволяет выделять группы пользователей, обладающих ограниченными правами.
Помимо рассмотренных основных прав доступа, имеются еще дополнительные права. Это биты SUID, SGID и Sticky-бит. Данные биты можно установить или убрать с помощью стандартной утилиты chmod. При использовании символьного режима данные биты указываются буквами s и t соответственно, а при использовании числового режима SUID соответствует 4000, SGID – 2000 и Sticky-бит – 1000. При просмотре прав доступа данные биты указываются вместо соответствующих битов x строчными буквами s и t. Следует отметить, что в большинстве случаев использование данных битов без установки соответствующих битов x лишено смысла (например установка SUIDбез установки бита x для владельца файла). Поэтому в этом случае при просмотре прав доступа биты будут указаны прописными буквами S и T, что указывает на некорректное их использование.
Рассмотрим область применения дополнительных битов.Биты SUID и SGID позволяют установить для файлов EUID и EGID процесса, равными UID или GID владельца-пользователя и владельца-группы файла. Sticky-бит для файлов считается устаревшим режимом и в современных системах практически не используется. Для каталогов битSGID задает режим, при котором при создании файла владельцем-группой становится группа, владеющая каталогом. Это позволяет некоторым Unix системам имитировать поведение систем версии BSD, для которых такое правило наследования действует по умолчанию. Sticky-бит для каталогов устанавливает режим, при котором пользователь может удалять файлы из каталога, только если он имеет право w для этих файлов. Это перекрывает режим по умолчанию, при котором для удаления файлов достаточно только прав w и x на сам каталог. Примером использования данного режима может служить каталог /tmp, который является открытым на запись для всех пользователей, но в котором может оказаться нежелательной возможность удаления пользователем чужих временных файлов.
Кроме рассмотренных выше прав доступа, в некоторых системах используются дополнительные права доступа. Например, в BSD системах существует специальный флагnoschg, установка которого запрещает изменять и удалять файл. Кроме того, некоторые современные версии систем Unix поддерживают управление списками доступа ACL.
В заключение, эта статья об управление правами доступа к ресурсам в unixlinux подчеркивает важность того что вы тут, расширяете ваше сознание, знания, навыки и умения. Надеюсь, что теперь ты понял что такое управление правами доступа к ресурсам в unixlinux и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Криптография и криптоанализ, Стеганография и Стегоанализ
Комментарии
Оставить комментарий
Информационная безопасность- Криптография и криптоанализ, Стеганография и Стегоанализ
Термины: Информационная безопасность- Криптография и криптоанализ, Стеганография и Стегоанализ