Ограниченный bash | Невозможно выполнить удаленную команду

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

Я настроил ограниченный bash для пользователя (scriptsser) на Машине A и создал символические ссылки на нужные команды, как показано ниже

lrwxrwxrwx. 1 root root 10 Nov 28 08:09 touch -> /bin/touch
lrwxrwxrwx. 1 root root  8 Nov 28 08:09 ssh -> /bin/ssh
lrwxrwxrwx. 1 root root  7 Dec 18 07:44 mv -> /bin/mv

Все работает отлично, и я могу использовать эти команды, когда я вхожу в систему на Машине A с этим пользователем (scriptsser).

Проблема начинается, когда я пытаюсь выполнить команду с удаленной машины, например, Машины B.

ssh scriptsser@MachineA -i /home/scriptsser/.ssh/id_rsa  "mv /file1 /file2" ;

Я получаю следующее сообщение об ошибке.

rbash: /bin/rbash: restricted: cannot specify `/’ in command names

Что я упускаю из виду?

Я понял, что установил ‘/bin/rbash’ в authorized_keys для пользователя “scriptsser”.

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

Ваша ситуация с ограниченным bash (rbash) на машине A в контексте удаленного выполнения команд действительно требует детального рассмотрения и понимания. Давайте разберем вашу задачу и возможные пути решения.

Теоретическая часть

Ограниченная оболочка (rbash):
rbash – это модифицированная версия bash, которая накладывает ограничения для повышения безопасности, предотвращая выполнение некоторых команд или перемещение в файловой системе. Обычно используется для создания изолированных сред для пользователей, которые должны выполнять только определенные команды.

Типичные ограничения rbash:

  1. Запрет на использование абсолютных путей: Это ограничение, с которым вы столкнулись судя по ошибке rbash: /bin/rbash: restricted: cannot specify '/' in command names.
  2. Запрещена смена каталога (cd).
  3. Список разрешенных команд: Пользователь может выполнять только команды, на которые созданы символьные ссылки и которые находятся в их PATH.

Символьные ссылки и PATH:
Обычно для пользователей с ограниченным доступом создается специальный каталог (например, /home/scriptsser/bin), где располагаются символьные ссылки на разрешенные программы. Это предотвращает использование других программ, путями к которым isх kasptorijhьhbsyhczigspytl.

Пример

Вы настроили несколько команд через символические ссылки (например, touch, ssh, mv). При локальной работе все работает корректно. Однако удаленный вызов через SSH ведет к ошибке из-за особенностей настройки удаленного доступа и интерпретации ограниченной оболочкой.

Применение и рекомендации

  1. Изменение конфигурации SSH:

    • При использовании SSH для удаленного выполнения команд с косты попробуйте убедиться, что в файл authorized_keys не задано жесткое использование /bin/rbash. Вы можете также посмотреть на порядок выполнения и init команд, которые выполняются при использовании SSH.
    • Один из способов – использовать опцию command в authorized_keys, чтобы разрешить выполнение только определенного сценария или командного файла, который будет использовать относительные пути или исполняемые файлы внутри разрешенного директория.
  2. Настройка окружения PATH:

    • Убедитесь, что PATH для пользователя scriptsser на машине A включает в себя только те директории, где созданы разрешенные символьные ссылки. Это может быть сделано в .bashrc или через системные конфигурации.
    • Например, добавьте в .bashrc:
      export PATH=/home/scriptsser/bin
  3. Отказ от абсолютных путей:

    • Используйте относительные пути или скрипты, которые ссылаются на команды внутри установленных ограничений.
    • Определите пути в скрипте, который можно прописать в разрешенном catalog, которому получит доступ на выполнение.
  4. Альтернативные методы:

    • Если у вас закрыта возможность перехода на использование полноценного bash, рассмотрите написание простого шелл-скрипта, который будет находиться в разрешённом PATH и выполнять mv, touch, и другие нужные вам команты, манипулируя параметрами и проверками.

Обращение к вопросу настройки и безопасной работы через SSH с ограниченными оболочками требует баланса между безопасностью и функциональностью. Использование best practices при настройке оболочки и работы с удаленным доступом помогут реши вашу проблему, не ослабляя безопасность на машине A.

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

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