2011-08-01 2 views
2

exec() 명령에서 rsh을 사용하는 데 문제가 있습니다. 내가 받고있는 오류는 Could not create directory '/nonexistent/.ssh'입니다.PHP에서 exec()를 사용하여 RSH 명령 실행

아파치가 홈 디렉토리가없는 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를 사용하도록 설정되어 있고 인증을 위해 SSH를 사용하는 것처럼 보입니다. 이것이 .ssh 디렉토리 검색의 원인이었습니다.

이 문제를 해결하기 위해 nobody 사용자의 홈 디렉토리를 만들지 않으려면 SSH 키를 만들어 .ssh 디렉토리가 아닌 다른 위치의 파일 시스템에 다시 저장하십시오. 그런 다음 SSH를 사용하여 비밀번호로 로그인하지 않고도 원격으로 스크립트를 실행할 수 있도록 내 생성 된 SSH 키를 가리키는 -i 옵션을 지정했습니다.

관련 문제