Разрешить группе UNIX доступ только к одному файлу через SSH

Я хотел бы создать группу пользователей UNIX, которая имеет доступ только к одному конкретному файлу Python через SSH. То есть, они не должны иметь возможности запускать другие команды / программы или просматривать любую часть файловой структуры.

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

Редактировать с более подробной информацией по запросу: сценарий должен выполняться на сервере, поскольку он часто подключается и обновляет / считывает базу данных, также находящуюся на сервере. Пользователи будут взаимодействовать друг с другом на сервере через скрипт. Я не хочу, чтобы пользователи загружали / устанавливали что-либо, кроме клиента SSH, но я хочу ограничить доступ ко всем частям сервера, кроме сценария.

Мое решение состояло в том, чтобы следовать комментарию Кеннета и настроить lshell – было довольно легко и быстро сделать.

  1. Запустите sudo apt install lshell чтобы получить lshell
  2. Создайте группу UNIX (например, sudo groupadd testgroup группу sudo groupadd testgroup )
  3. Добавьте необходимых пользователей (ов) в вашу группу (например, sudo usermod -a -G testgroup username )
  4. Также добавьте пользователей (пользователей) в группу lshell (например, sudo usermod -a -G lshell username )
  5. Измените /etc/lshell.conf нужную конфигурацию (см. Ниже)
  6. Установите lshell в качестве оболочки по умолчанию для пользователей (например, chsh -s /usr/bin/lshell username )

В приведенной ниже конфигурации testuser может запускать script.py только после входа в систему через SSH. Они не могут подключаться к SCP / SFTP или просматривать структуру файла через оболочку.

 [grp:testgroup] login_script : "python /some/path/script.py" path : "/some/path/" forbidden : ["ls", "echo", "cd"] scp : 0 sftp : 0 
  • Зачем мне вводить пароль для разблокировки по умолчанию?
  • Как установить Sun / Oracle Java SDK на Ubuntu?
  • Могу ли я перенести установку Ubuntu vmware на новый ноутбук?
  • Скрыть файлы в Linux без использования точки
  • Как настроить VLAN в той же подсети, что и Ethernet
  • Как добавить обычного пользователя в файл sudoers?
  • Команда gui «Open With» Ubuntu не запоминает приложение
  • У Toshiba есть собственный MBR?
  • Неизвестный кодер 'libmp3lame'
  • Не удается найти правильный Ubuntu Server ISO для VirtualBox
  • Как отключить услугу выскочки в ubuntu 10.10?
  • Давайте будем гением компьютера.