2011-08-01 19 views
2

exec()コマンドでrshを使用する際に問題があります。私が得ているエラーは、Could not create directory '/nonexistent/.ssh'です。PHPでexec()を使用してRSHコマンドを実行中

これは、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

私は使用しているサーバーのrshがKerberosを有効にしているように見えますが、KerberosがSSHを使用して認証を行っているようです。これが.sshディレクトリの検索を引き起こした原因です。

これを解決するために、nobodyユーザのホームディレクトリを作成しないように、SSH鍵を作成して.sshディレクトリ以外の別の場所にファイルシステムに格納しました。その後、SSHを使用して、私は-iオプションを指定して私の生成されたSSH鍵を指し、パスワードでログインする必要なしにリモートでスクリプトを実行できるようにしました。

関連する問題