как запретить пользователю SSH запускать только определённую программу

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

В локальной сети (24/4 включен) есть компьютер (домашний сервер) с подключенными колонками.

Система Linux может воспроизводить музыку с помощью программы “mocp” (музыка в консоли).

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

Они должны подключаться к компьютеру по ssh.

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

Существует определенный каталог (с музыкой для воспроизведения), который только moc и ssh-пользователь должны видеть и использовать.

(Если moc запущен, его можно отключить с помощью “q” или “Q” для выхода.)

Это возможно, и как это сделать?

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

Да, это возможно. Вы можете создать пользователя в системе Linux, который будет иметь доступ только к программе mocp (Music On Console), и ограничить его возможности в SSH. Приведённые ниже шаги помогут вам настроить это.

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

  1. Откройте терминал и выполните следующую команду для создания нового пользователя. Замените mocuser на желаемое имя пользователя.

    sudo adduser mocuser
  2. Следуйте инструкциям по установке пароля и заполнению других данных о пользователе.

Шаг 2: Ограничьте доступ пользователя

  1. Теперь измените оболочку (shell) пользователя на rbash (ограниченная версия bash), чтобы ограничить доступ к другим командам. Выполните:

    sudo usermod -s /bin/rbash mocuser
  2. Затем создайте директорию, где будет находиться музыка, и дайте пользователю доступ только к этой папке. Например, создайте директорию для музыки:

    sudo mkdir /home/mocuser/music
  3. Установите необходимые права доступа:

    sudo chown mocuser:mocuser /home/mocuser/music
    chmod 700 /home/mocuser/music

Шаг 3: Настройте окружение пользователя

  1. Создайте файл bin в домашней директории пользователя:

    mkdir /home/mocuser/bin
  2. Создайте символьную ссылку на mocp в этой директории:

    ln -s /usr/bin/mocp /home/mocuser/bin/mocp
  3. Добавьте путь к bin в файл ~/.bash_profile или ~/.bashrc пользователя mocuser:

    echo 'PATH=$HOME/bin:$PATH' >> /home/mocuser/.bashrc
  4. Убедитесь, что пользователь имеет право на выполнение mocp:

    sudo chown mocuser:mocuser /usr/bin/mocp

Шаг 4: Вход в систему и автоматическое завершение сессии

Чтобы завершить сессию автоматически после выхода из mocp, добавьте несколько команд в .bash_logout пользователя mocuser.

  1. Создайте файл .bash_logout:

    echo 'exit' > /home/mocuser/.bash_logout

Шаг 5: Ограничение доступа к другим директориям и командам

Убедитесь, что пользователь mocuser не имеет доступа к другим командам и директориям. Это можно сделать путем ограничения прав доступа к другим файлам и директориям. Например, можно настроить chmod для запрета доступа к / и другим критически важным каталогам.

Проверка настройки

Теперь вы можете протестировать нового пользователя:

  1. Войдите под пользователем mocuser через SSH:

    ssh mocuser@<IP_адрес_вашего_homeserver>
  2. Запустите mocp командой:

    mocp
  3. Чтобы выйти из программы и завершить SSH-сессию, просто нажмите q или Q.

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

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

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