Выполнение команды RSH с использованием exec () в PHP - PullRequest
2 голосов
/ 01 августа 2011

У меня проблемы с использованием rsh в команде PHP exec().Я получаю сообщение об ошибке: Could not create directory '/nonexistent/.ssh'.

Похоже, это потому, что Apache работает как пользователь nobody, у которого нет домашнего каталога, поэтому он не может найти / создать файл .ssh.каталог.То, что я хотел бы сделать из терминала, выглядит примерно так:

sudo su - user_with_home_directory
/usr/bin/rsh -n -l username myserver.com /path/to/my/script.sh

Но я не знаю, как это сделать с помощью команды PHP exec().Я не хочу (и не могу) предоставить никому пользователю домашний каталог, чтобы устранить проблему.

Любая помощь очень важна, чтобы помочь мне понять, как заставить это работать.

1 Ответ

1 голос
/ 04 августа 2011

Таким образом, похоже, что rsh на сервере, который я использую, включен Kerberos, который, в свою очередь, использует SSH для аутентификации.Именно это и стало причиной поиска каталога .ssh.

Чтобы решить эту проблему, я создал ключ SSH и сохранил его в файловой системе в другом месте, отличном от каталога .ssh.от создания домашнего каталога для пользователя nobody.Затем, используя SSH, я указал опцию -i, которая указывает на мой сгенерированный ключ SSH, что позволяет мне выполнять скрипт удаленно без необходимости входа в систему с паролем.

...