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

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

Мне нужно создать пользователя в системе Linux с правами на установку программ, но без прав на доступ к каталогам других пользователей.

Я пробовал сделать так:

# Создать ограниченного пользователя
adduser --home /home/restricted_user restricted_user

# Изменить права доступа к каталогу обычного пользователя
chmod -R 700 /home/normal_user/

# Добавить ограниченного пользователя в sudoers, чтобы разрешить установку программ
sudo adduser restricted_user sudo

Затем я попробовал:

su restricted_user
sudo ls /home/normal_user

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

Как мне реализовать эти ограничения?

Не добавляйте пользователя в sudo группу, не предоставляйте им общий доступ к root. Отредактируйте /etc/sudoers и укажите небольшой набор исполняемых файлов, которые пользователь может запускать от имени root. Пример:

# в файле sudoers
restricted_user ALL = (root) /usr/bin/apt-get
restricted_user ALL = (root) /sbin/reboot

Примечания:

  • В зависимости от вашей Linux: apt-get/apt, dpkg, opkg, pacman, yum, …
  • Используйте полные пути.
  • Правильный способ редактирования sudoers — это visudo.
  • См. man 5 sudoers для получения дополнительной информации о синтаксисе.
  • Когда вы создаете более сложные правила, помните, что их порядок имеет значение.

Имейте в виду, что целеустремленный пользователь, который может устанавливать произвольные программы, может подготовить и установить версию setuid для ls или “усовершенствованный” sudo, который даст им доступ к root, независимо от /etc/sudoers. Или предоставить и установить пакет, который выполняет произвольные действия при установке (возможно, без фактической установки чего-либо). Предотвратить это может быть непросто.

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

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

Шаг 1: Создание пользователя

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

sudo adduser --home /home/restricted_user restricted_user

Шаг 2: Настройка прав доступа к домашней директории

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

sudo chmod -R 700 /home/normal_user/

Эта команда изменит права доступа так, что только владелец директории будет иметь к ней доступ.

Шаг 3: Настройка прав sudo

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

sudo visudo

Внутри файла sudoers добавьте следующие строки:

restricted_user ALL=(ALL) NOPASSWD: /usr/bin/apt-get, /usr/bin/dpkg

Это даст пользователю restricted_user возможность выполнять команды apt-get и dpkg без необходимости вводить пароль, что удобно для установки программ.

Шаг 4: Проверка настроек

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

sudo apt-get install имя_пакета

При этом необходимо убедиться в том, что пользователь не может получить доступ к домашним директориям других пользователей:

sudo ls /home/normal_user

Если настроено правильно, то доступ не должен быть предоставлен.

Важные замечания

  • Безопасность: Хотя мы ограничили права доступа к файлам, пользователю все еще разрешено устанавливать программы. Это может привести к тому, что он сможет установить вредоносные пакеты или использовать уязвимости в системе. Рассмотрите возможность использования более строгого контроля в зависимости от контекста использования.
  • Управление дополнительно: Будьте внимательны с программами, которые пользователь может установить. Обратите внимание на возможность установки исполняемых файлов с повышенными привилегиями (например, с помощью setuid).

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

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

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