Вопрос или проблема
В локальной сети (24/4 включен) есть компьютер (домашний сервер) с подключенными колонками.
Система Linux может воспроизводить музыку с помощью программы “mocp” (музыка в консоли).
Я хотел бы предоставить другим пользователям в локальной сети доступ к moc для воспроизведения музыки.
Они должны подключаться к компьютеру по ssh.
Но должен быть пользователь, который сможет запускать только программу moc
, и если она завершится, соединение ssh должно разорваться.
Существует определенный каталог (с музыкой для воспроизведения), который только moc
и ssh-пользователь должны видеть и использовать.
(Если moc запущен, его можно отключить с помощью “q” или “Q” для выхода.)
Это возможно, и как это сделать?
Ответ или решение
Да, это возможно. Вы можете создать пользователя в системе Linux, который будет иметь доступ только к программе mocp
(Music On Console), и ограничить его возможности в SSH. Приведённые ниже шаги помогут вам настроить это.
Шаг 1: Создайте нового пользователя
-
Откройте терминал и выполните следующую команду для создания нового пользователя. Замените
mocuser
на желаемое имя пользователя.sudo adduser mocuser
-
Следуйте инструкциям по установке пароля и заполнению других данных о пользователе.
Шаг 2: Ограничьте доступ пользователя
-
Теперь измените оболочку (shell) пользователя на
rbash
(ограниченная версия bash), чтобы ограничить доступ к другим командам. Выполните:sudo usermod -s /bin/rbash mocuser
-
Затем создайте директорию, где будет находиться музыка, и дайте пользователю доступ только к этой папке. Например, создайте директорию для музыки:
sudo mkdir /home/mocuser/music
-
Установите необходимые права доступа:
sudo chown mocuser:mocuser /home/mocuser/music chmod 700 /home/mocuser/music
Шаг 3: Настройте окружение пользователя
-
Создайте файл
bin
в домашней директории пользователя:mkdir /home/mocuser/bin
-
Создайте символьную ссылку на
mocp
в этой директории:ln -s /usr/bin/mocp /home/mocuser/bin/mocp
-
Добавьте путь к
bin
в файл~/.bash_profile
или~/.bashrc
пользователяmocuser
:echo 'PATH=$HOME/bin:$PATH' >> /home/mocuser/.bashrc
-
Убедитесь, что пользователь имеет право на выполнение
mocp
:sudo chown mocuser:mocuser /usr/bin/mocp
Шаг 4: Вход в систему и автоматическое завершение сессии
Чтобы завершить сессию автоматически после выхода из mocp
, добавьте несколько команд в .bash_logout
пользователя mocuser
.
-
Создайте файл
.bash_logout
:echo 'exit' > /home/mocuser/.bash_logout
Шаг 5: Ограничение доступа к другим директориям и командам
Убедитесь, что пользователь mocuser
не имеет доступа к другим командам и директориям. Это можно сделать путем ограничения прав доступа к другим файлам и директориям. Например, можно настроить chmod
для запрета доступа к /
и другим критически важным каталогам.
Проверка настройки
Теперь вы можете протестировать нового пользователя:
-
Войдите под пользователем
mocuser
через SSH:ssh mocuser@<IP_адрес_вашего_homeserver>
-
Запустите
mocp
командой:mocp
-
Чтобы выйти из программы и завершить SSH-сессию, просто нажмите
q
илиQ
.
Теперь у вас будет пользователь, который сможет запускать только mocp
, и его сессия завершится с выходом из программы. Вы обеспечите безопасность и ограниченный доступ для пользователей в вашей локальной сети.