Онлайн-редактор файлов

#php #file #ssh #text-editor

#php #файл #ssh #текстовый редактор

Вопрос:

Я создаю онлайн редактор файлов, который работает по SSH. Он может подключаться к другому компьютеру SSH, считывать textarea и выполнять удаленную SSH-команду с помощью $textarea . Какую команду мне использовать, чтобы она изменила файл с именем server.settings на содержимое $ textarea? Или какой-нибудь скрипт?

Заранее спасибо.

Комментарии:

1. Вы действительно хотите сделать что-то подобное? Подумайте о проблемах безопасности. что, если кто-то заполнит форму с rm -rf / amp; ?

2. Если вы даже не знаете основных файловых функций в PHP, вам не следует пытаться создавать пользовательский интерфейс удаленного взаимодействия через SSH.

Ответ №1:

Я согласен с Марком Б. Это звучит опасно. Было бы намного безопаснее запустить службу на компьютере, на котором есть файл, подлежащий изменению, но я предполагаю, что вы подумали об этом и что это не вариант.

Немного более безопасным способом сделать это было бы использовать scp или sftp вместо ssh, так что вероятность выполнения произвольных команд на компьютере с файлом для редактирования меньше. Итак, вы бы

  1. scp файл из machine2 в machine1
  2. Прочитайте содержимое и поместите его в текстовую область вашей веб-страницы
  3. Пользователь редактирует содержимое и нажимает Сохранить
  4. scp файл обратно в machine2

Комментарии:

1. Можете ли вы подробнее рассказать о том, как именно вы рутировали пользователей, которые подключались к shellinabox? Я хотел бы сделать что-то подобное, в частности, чтобы пользователь мог вводить любое выбранное им имя пользователя без пароля, а затем автоматически создается защищенный терминал. Есть идеи?

Ответ №2:

Я использую shellinabox, и в этом нет необходимости. Очень просто заблокировать с помощью chroot любые подключающиеся клиенты, и с помощью screen у меня могут быть мультиплексированные терминалы и постоянные сеансы.

$0.02

Ответ №3:

Итак, решение, которое я принял, заключалось в следующем: я повторил результат SSH-команды в textarea

 tail -n 2000000000000000000 /root/server.log
  

Затем было сделано, что python запишет содержимое из текстовой области в запрошенный файл.