다른 컴퓨터 또는 동일한 컴퓨터의 ssh를 사용하여/root/scripts /에있는 perl 스크립트를 PHP에서 실행해야합니다. 것은 단지 그 파일을 excecute 뿌리 계정으로 PHP 로그를 만드는 방법을 모르겠다.root가 필요한 perl 스크립트를 어떻게 실행할 수 있습니까?
사용자 $로/root/scripts /에 액세스 할 수 없으므로 excec 또는 system을 사용하여 호출 할 수 없습니다. 나는 sudo su에 로그인 할 때 ssh를 사용 해보려고 노력했다. 그리고 패스워드를 줄 때 멈춘다.
<?php
include('Net/SSH2.php');
$ssh = new Net_SSH2('IP');
if (!$ssh->login('user', 'password')) {
exit('Login Failed');
}else{
echo ("login suscess");
}
echo $ssh->read(']$');
echo $ssh->write("sudo su\n");
echo $ssh->read('user:');
//the code normally runs if I dont write the lines below
$ssh->write('password\n');//here I try to get ssh the root pass but php wont respond after this
echo $ssh->read('user]#');//normally this would work to show the root prompt but I don't know what happens
?>
난 당신이 여기 좀 도와 수 있기를 바랍니다 :
나는 여기에 코드를 둡니다.
이미 루트 로그인을 사용하고, 간부 sudo는 SU : 여기에 그 처리 방법의 phpseclib의 사이트에 예제가? – bwoebi
죄송합니다. 사용자가있는 곳에 루트를두고 있다는 것을 알지 못해 죄송합니다. 질문을 작성하기 전에 테스트에 불과했기 때문에 사용자를 다시 잊어 버렸습니다. –
ssh를 통한 원격 루트는 거대한 보안 구멍입니다. 일반 사용자로 로그인 한 다음 특정 사용자에게 특정 스크립트에 대한 sudo 액세스 권한을 부여하는 것이 훨씬 낫습니다. –