#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, так что вероятность выполнения произвольных команд на компьютере с файлом для редактирования меньше. Итак, вы бы
- scp файл из machine2 в machine1
- Прочитайте содержимое и поместите его в текстовую область вашей веб-страницы
- Пользователь редактирует содержимое и нажимает Сохранить
- scp файл обратно в machine2
Комментарии:
1. Можете ли вы подробнее рассказать о том, как именно вы рутировали пользователей, которые подключались к shellinabox? Я хотел бы сделать что-то подобное, в частности, чтобы пользователь мог вводить любое выбранное им имя пользователя без пароля, а затем автоматически создается защищенный терминал. Есть идеи?
Ответ №2:
Я использую shellinabox, и в этом нет необходимости. Очень просто заблокировать с помощью chroot любые подключающиеся клиенты, и с помощью screen у меня могут быть мультиплексированные терминалы и постоянные сеансы.
$0.02
Ответ №3:
Итак, решение, которое я принял, заключалось в следующем: я повторил результат SSH-команды в textarea
tail -n 2000000000000000000 /root/server.log
Затем было сделано, что python запишет содержимое из текстовой области в запрошенный файл.