31.08.2023

Права доступа к файлам в Linux

Введение

Управление доступом и разрешениями для файлов важнейшие цели в области управления данными и безопасности:

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

Требования

Разрешения и атрибуты в Linux

В среде Linux управление файлами представляет собой тщательный и сложный процесс, призванный обеспечить максимальную безопасность и точность работы с данными. Linux распознает целый спектр типов файлов, включая обычные файлы, каталоги, символические ссылки и устройства. Каждый тип обладает уникальными атрибутами и правами доступа. В Debian 12 мы можем проверить атрибуты и разрешения всех пользователей с помощью следующей команды:

ls -l

Скриншот №1 — Атрибуты файлов

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

ls -l /etc/network/interfaces

Скриншот №2 — Атрибуты файла

Давайте уточним каждый параметр:

Каждый файл связан с отдельным пользователем (владельцем) и определенной группой. При создании файла его создатель становится его владельцем, а определенная группа назначается на этот файл. Linux разделяет права доступа на три категории: пользователь, группа и другие. Каждой категории могут быть назначены свои разрешения на чтение, запись и выполнение. И все это мы можем изменить, если у нас есть на это право и прямое разрешение, с помощью утилиты chmod.

Разрешения также можно перевести в числовую форму, где чтение (r) равно 4, запись (w) — 2, а выполнение (x) — 1. Сумма представляет собой числовое разрешение, например 755.

chmod 755 interfaces

Скриншот №3 — Chmod цифрами

Если же мы хотим запретить использование файла для всех типов пользователей, то необходимо написать следующую команду:

chmod 000 interfaces

Скриншот №4 — Chmod запрет

Команда chmod служит для изменения прав доступа. Эта команда принимает как символьные, так и числовые обозначения. Например, chmod u+w filename дает право на запись владельцу. Символ u означает владельца, g — группу, o — других и a — всех. Затем мы указываем + или - или = для добавления, удаления, явного указания разрешения для пользователей:

chmod u+rwx interfaces && chmod go-rwx interfaces

Скриншот №5 — Chmod символьные

Или мы можем использовать команду:

chmod u=rwx, go= interfaces

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

chmod +t interfaces

Это базовые разрешения системы, но что, если нам нужно больше контроля?

Утилита для дополнительного контроля

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

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

Использование команды Umask: Команда umask регулирует разрешения по умолчанию для новых файлов и каталогов. Для этого она вычитает указанную маску из максимального значения разрешения, чтобы установить значения по умолчанию. По умолчанию мы видим такой список разрешений:

Скриншот №6 — Права по умолчанию

Здесь мы видим стандартный список разрешений для файлов, давайте изменим его:

umask u=rwx,go=

Скриншот №7 — Изменение прав по умолчанию

Это решение поможет на время до выключения машины, для более длительной работы системы можно добавить в .bashrc или bash_login необходимые raw!

Вывод

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