К основному контенту

Продать автомобиль на запчасти – советы по продаже

🖍 Как сделать учетную запись пользователя с доступом только на чтение в CentOS / RHEL

Вопрос: Как создать учетную запись пользователя, которая не сможет писать ни в один файл в системе?

Другими словами, как создать учетную запись пользователя только для чтения в CentOS/RHEL 7?

Linux не обеспечивает классификацию учетных записей на уровне ролей.

Разрешение доступа контролируется на уровне Inode, что подразумевает разрешения для каждого отдельного файла или каталога в отдельности.

Если мы можем немного переформулировать проблему, есть по крайней мере два метода, которые могут осуществить желаемую операцию.

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

Это позволяет нам использовать несколько альтернативных методов достижения практически одинакового результата.

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

Создать непривилегированный анонимный аккаунт

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

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

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

# useradd -c 'Mostly R/O Account' roaccount

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

У ОС уже есть учетная запись с наименьшими привилегиями nobody, но эта учетная запись специально обрабатывается системой.

Для использования «только для чтения» рекомендуется отдельный аккаунт.

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

Это можно сделать вручную или установив значение umask процесса создания как минимум 0002 (что блокирует установку «другие пользователи» разрешений на запись).

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

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

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

Например, настройка:

# auditctl -a always,exit -S write -F auid=1000

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

Подсистема audit достаточно выразительна в условиях, которые можно отобразить.

Более подробную документацию можно найти на справочной странице audit.rules.

# man audit.rules

Используйте списки контроля доступа (ACL) для переопределения прав.

Некоторые обработчики файловой системы поддерживают списки управления доступом (ACL), которые имеют более точные разрешения, чем позволяют забыть про владельца/группу/других пользователей.

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

Например, мы хотим предоставить userA, userB и userC доступ только на чтение к каталогу /secret-files/ и ниже.

Мы можем сделать это так:

# setfacl -Rd -m u:userA:rx -m u:userB:rx -m u:userC:rx /secret-files# setfacl -R-m u:userA:rx -m u:userB:rx -m u:userC:rx /secret-files
Первая строка устанавливает ACL по умолчанию, который будет применяться ко всем новым файлам или каталогам, созданным в /secret-files в будущем. Второй файл применяет ACL к любому существующему контенту в дереве /secret-files и ниже.

Более подробную информацию об этой функции можно найти на странице aclman.

# man acl

Комментарии


Дистанционная компьтерная помощь, удаленная компьютерная помощь онлайн.

Популярные сообщения из этого блога

Лучшие плагины для OBS Studio

Open Broadcast Software или OBS - это свободное программное обеспечение с открытым исходным кодом для стриминга аудио и видео данных в сеть интернет. Программа полностью кроссплатформенная и может работать в Windows, Linux или MacOS. Это отличная альтернатива для таких программ, как Wirecast и XSplit. OBS использует для вещания стандартный протокол обмена сообщениями в реальном времени, а поэтому может транслировать данные в любой сервис, поддерживающий это, например, Yotube. Несмотря на широкие возможности OBS, программа поддерживает еще и множество плагинов. В этой статье мы рассмотрим лучшие плагины для OBS Studio, которые вы можете использовать. Содержание статьи: Лучшие плагины OBS Studio 1. Browser Source Plugin 2. Video Source Plugin 3. Simple Scene Switcher 4. DirectShow Audio Source 5. CLR Browser Source 6. OBS Remote 7. AMD Advanced Media Framework Encoder 8. Text Source Plugin Выводы Лучшие плагины OBS Studio Чтобы найти плагины OBS Studio для Video пользо

Лучшие аналоги Paint для Linux

Когда я работал в Windows, я часто использовал стандартную программу редактора изображений Windows - Paint. Не всегда нужен очень и многофункциональный инструмент вроде Photoshop или Gimp. Иногда, чтобы подправить ту или иную картинку, дорисовать на ней несколько фигур или вставить текст достаточно простого, легкого в освоении графического редактора вроде Paint. В Linux таких программ довольно много. В этой инструкции мы рассмотрим лучшие аналоги Paint для Linux. В этот список не будут включены такие программы, как Gimp и Krita, ведь это полнофункциональные графические редакторы, векторные редакторы, такие как Inkscape мы тоже рассматривать не будем. А теперь перейдем к списку. Содержание статьи: KolourPaint MyPaint Gnome Paint XPaint Pinta mtPaint GPaint Rassam-paint Выводы KolourPaint На первом месте в списке аналогов Piant для Linux будет KoloutPaint. Это стандартный графический редактор для окружения рабочего стола KDE. Он поддерживает множество форматов изображе

Подключение OneDrive в Linux

OneDrive (Ранее известный как SkyDrive) это популярное облачное хранилище файлов от Майкрософт. Сейчас OneDrive бесплатно предоставляет 7 гигабайт пространства новым пользователям. Как вы знаете OneDrive хорошо интегрирован с другими продуктами компании  Microsoft. В OneDrive Также есть официальный клиент который автоматически загружает ваши видео и фотографии с камеры в облако. Но к сожалению этот клиент недоступен для операционных систем семейства Linux. Но не все так плохо. Сообщество открытого программного обеспечения уже нашло решение. Это opedrive-d от Boilermaker. Запустившись как демон программа автоматически синхронизирует локальную папку с облаком OneDrive. Содержание статьи: Установка Onedrive-d в Linux Настройка Синхронизация локальной папки с OneDrive Установка Onedrive-d в Linux Несмотря на то что onedrive-d разрабатывается для Ubuntu/Debian, CentOs/Fedora/RHEL поддерживается тоже хорошо. Для установки достаточно набрать несколько команд: $ git clone h