Добавить пользователя с ограниченным доступом

Вопрос или проблема

У меня есть администраторский пользователь, который имеет доступ ко всей Ubuntu. Я хочу создать другого пользователя, который не сможет открывать файловый менеджер и просматривать корневую или другие папки. Все, что он сможет делать, это открывать браузер, офисные приложения и файловый менеджер только для своей домашней директории. Есть идеи? Спасибо

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

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

  • Система разрешений файлов в Linux позволяет регулировать доступ. Отключение разрешений на чтение для “других” в системных директориях не позволит никому, кроме root, просматривать содержимое директорий и файлов. Однако это будет применяться ко всем пользователям системы. В Linux также есть более продвинутая система ACL, которая позволяет задавать разрешения более детально. Эта система по умолчанию не настроена в большинстве дистрибутивов Linux.
  • Пользователи могут запускать исполняемые файлы, потому что они существуют в поисковом PATH. Чтобы контролировать, какие исполняемые файлы может запускать конкретный пользователь, путь поиска для этого пользователя может быть сужен до локальной директории пользователя, например ~/.local/bin. Затем доступ может быть предоставлен к конкретным приложениям путем создания скриптов-ланучеров или символических ссылок на системные исполняемые файлы в этой директории.
  • В Обзоре Приложений пользователи видят все ланучеры, установленные в application директориях в любом из каталогов, содержащихся в переменной XDG_DATA_DIRS. Опять же, переменная XDG_DATA_DIRS для пользователя может быть ограничена только локальными директориями пользователя, ~/.local/share/applications. Затем в меню приложений будут отображаться только ланучеры, которые были символически связаны или скопированы в эту директорию.

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

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

Ответ или решение

Создание пользователя с ограниченным доступом в Ubuntu требует глубокого понимания системы разрешений Linux и способов управления доступом. Давайте рассмотрим, как можно реализовать такие ограничения, следуя принципам TEA (теория, пример, применение).

Теория

В основе управления доступом в Linux лежит система прав доступа к файлам, которая определяет, кто может читать, писать и исполнять файлы и директории. Также существует более сложная система ACL (Access Control List), позволяющая более гибко настраивать права доступа, однако она требует дополнительной настройки и не используется по умолчанию в большинстве дистрибутивов Linux.

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

Пример

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

  1. Создание пользователя с ограниченным доступом:

    • В Ubuntu можно добавить пользователя с помощью команды adduser.
    • Для ограничения доступа к системным каталогам стандартный механизм прав Linux может применяться для всех файлов, принадлежащих root, отключив доступ для "остальных" (оthers).
  2. Настройка переменных PATH:

    • Вы можете модифицировать переменную PATH нового пользователя, чтобы она содержала только локальные директории, например ~/.local/bin, и там разместить ссылки (symlinks) или скрипты запуска для разрешенных приложений, таких как браузер и офисный пакет.
  3. Ограничение доступных приложений:

    • Установив переменную XDG_DATA_DIRS так, чтобы она включала только каталог ~/.local/share/applications, вы ограничите список приложений, которые пользователь увидит в меню.
  4. Использование Kiosk Mode:

    • Если описанные выше меры окажутся недостаточными или слишком сложными, вы можете рассмотреть использование Kiosk Mode, который автоматически ограничивает возможности пользователя на уровне сессии.

Применение

Предположим, вы хотите на практике реализовать приведенные выше принципы:

  1. Настройка прав доступа:

    sudo adduser limiteduser
    chmod o-r /path/to/system/directories
  2. Редактирование файла .bashrc для PATH:
    В файле .bashrc пользователя добавьте:

    export PATH=~/.local/bin
  3. Настройка XDG_DATA_DIRS:

    export XDG_DATA_DIRS=~/.local/share/applications
  4. Создание необходимых symlinks:

    ln -s /usr/bin/firefox ~/.local/bin/
    ln -s /usr/bin/libreoffice ~/.local/bin/

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

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...