2017-01-19 4 views
-1

작동하지 않습니다. ldap_search 스크립트에서 정확한 결과를 얻고 있습니다.쉘 스크립트 명령 "ldap_search"나는 사용자 ID를 사용하여 Active Directory에서 사용자 정보를 추출하기위한 적절한 <strong>LDAP 서버 인증</strong>에 의해 <code>ldap_search</code> 쉘 스크립트 명령을 사용하는 코드를 개발하고 있어요 PHP는 간부 또는 shell_exec 명령

그러나 쉘 스크립트를 exec 또는 shell_exec PHP 명령 안에 넣을 때마다 아무것도 얻지 못할 것입니다.

다른 모든 셸 스크립트는 ldap_search을 제외한 PHP exec 명령을 사용하여 올바르게 작동합니다.

내가 할 수있는 추가 작업이 남아 있습니까?

ldap_searchexec/shell_exec은 서로 호환되지 않습니까?

+0

내 잘못, 나는 ** PHP 스크립트 **를 사용하여 셸을 사용하여 실행하려고 시도한 것을 알 수 있습니까? 표시되는 오류와 함께 수행하려는 작업 (가능한 한 최소 코드 사용)을 정확하게 보여줄 수 있습니까? – Kitson88

+0

업데이트 -1 : 내 샘플 코드는 다음과 같습니다. > result.txt; ?> –

답변

0

당신은 echo exec('your command or script');

그것을 실행할 수있는 권한이 있는지 확인하십시오 사용해야합니다. 내 말은, 웹 사용자는이를 실행하기위한 권한이 있어야한다는 것입니다.

명백한 것처럼 보일 수도 있지만 귀하의 실패는 이와 같이 기본적인 것으로 생각됩니다. 명령의 결과를 표시하려면 echo를 입력해야합니다.

EDIT 새로운 의견을 읽고 새로운 정보를 사용한 후 ... 출력을 파일로 리디렉션하려고하는 것을 보았지만 어쩌면 두 가지 문제가있을 수 있습니다.

  1. 는 PHP가있는 폴더에 쓸 수있는 PHP를 실행하는 사용자 (보통 www가 데이터) 권한이 있나요?

  2. 귀하의 코드는 따옴표 안에 따옴표를 사용하여 이스케이프 처리해야합니다. 이 시도 : 파일에 출력을 원하는 경우

<?php exec("ldapsearch -x -v -h 'LDAP://server' -p '389' -D 'uid=\"domain_user_id\",ou=users,ou=internal,o=\"organization\"' -w 'domain_password' -b 'ou=users,ou=internal,o=organization' 'uid=person's_user_id' >> result.txt"); ?>

그래서 당신이 에코 필요가 없습니다. 그리고 리디렉션 >>은 PHP가 아닌 명령 실행 내에있을 수 있습니다.

파일 끝에 >이 붙어 있고 파일 끝에 >>의 내용이 들어 있습니다.

+0

내 샘플 코드는 다음과 같습니다. > result.txt; ?> –

+0

당신이 볼 수 있듯이 에코를 사용하여 출력물을 출력했습니다. 내 문제는 아무것도 PHP 명령 "exec()"잘못 말했다. 나는 "pwd", "ifconfig"등과 같은 간단한 쉘 스크립트 명령으로 이미 시도했다. ldapsearch가 작동하지 않는다. 허가에 관해서는, bash 실행에 의한 CentOS 터미널 ldapsearch 출력이 완벽하게오고있다. –

+0

이제 더 많은 데이터로 제 대답을 편집했습니다. 확인 해봐 – OscarAkaElvis