Как я могу создать пользователя и дать ему только права на чтение?

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

Мне нужно предоставить SSH-доступ только для чтения к определенной директории, чтобы они могли посмотреть мой PHP-код.

Директория – /var/www/html/websitenamehere/

Как я могу создать пользователя и разрешить ему вход через SSH, чтобы он мог увидеть и только читать эту директорию? Это возможно?

Я привык входить только как root.

Что-то вроде:

  • Создать пользователя

    useradd readonlyuser
    
  • Введите его пароль, если хотите использовать аутентификацию по паролю, в противном случае настройте SSH-ключи

    passwd readonlyuser
    
  • Дать разрешения на чтение и выполнение владельцу директории и всем её подпапкам и файлам

    chmod -R u+rx /var/www/html/websitenamehere/
    

    (буква u в u+rx обозначает пользователь, тогда как o будет обозначать другие – обычно это наименее привилегированная группа в UNIX-правах)

  • Установить домашнюю директорию пользователя

    usermod -d /var/www/html/websitenamehere/ readonlyuser
    

Или вы можете просто создать архив файловой системы и отправить его пользователю с помощью чего-то вроде

tar cfvz websitenamehere.tar.gz /var/www/html/websitenamehere/

.

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

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

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

Первым делом необходимо создать нового пользователя с именем readonlyuser. Для этого выполните команду:

sudo useradd readonlyuser

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

sudo passwd readonlyuser

Следуйте инструкциям для установки надежного пароля.

Шаг 2: Установка SSH-ключей (опционально)

Если вы предпочитаете использовать аутентификацию по ключам SSH (что более безопасно, чем пароли), выполните следующие шаги на компьютере пользователя:

  1. Сгенерируйте SSH-ключи, если их ещё нет:

    ssh-keygen -t rsa -b 2048
  2. Скопируйте публичный ключ на сервер, выполнив:

    ssh-copy-id readonlyuser@your_server_ip

Шаг 3: Настройка прав доступа к каталогу

Теперь, чтобы предоставить доступ к каталогу /var/www/html/websitenamehere/, нужно корректно настроить права доступа. Для этого выполните следующие команды для изменения прав доступа:

sudo chown -R :readonlyuser /var/www/html/websitenamehere/
sudo chmod -R 550 /var/www/html/websitenamehere/

Объяснение команд:

  • chown -R :readonlyuser – изменяет группу для всех файлов и подпапок в указанном каталоге на readonlyuser.
  • chmod -R 550 – задает права доступа: владелец может читать и исполнять, а группа — только читать.

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

Шаг 4: Настройка домашнего каталога (необязательно)

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

sudo usermod -d /var/www/html/websitenamehere/ readonlyuser

Шаг 5: Дополнительные ограничения (необязательно)

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

Заключение

Теперь вы создали пользователя с правами только для чтения к каталогу, который необходим для работы. Этот подход обеспечивает безопасный доступ к вашим файлам без риска их изменения или удаления. При необходимости вы всегда можете дополнительно изучить методы жесткого контроля доступа, такие как ограничение команд через sudo или использование специальной оболочки (shell).

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

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

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