2014-02-10 5 views
-2

입력란의 값으로 네트워크 구성을 변경하려고합니다. 페이지가로드되면 필드의 주소가 표시되며 사용자가이를 수정할 수 있습니다. 사용자가 업데이트 버튼을 누르면 새 값으로 변경해야합니다. 매개 변수를 서버에 전달할 수 없습니다. /etc/network/interfaces 파일을 변경하지만 올바른 값으로 파일을 업데이트 할 수없는 bash 스크립트가 있습니다.PHP에서 bash 스크립트로 매개 변수를 전달하는 방법

<?php $mask=shell_exec("some grep for netmask' "); ?> 
<?php $gateway=shell_exec("some grep for gateway"); ?> 
<?php $ip=shell_exec('hostname -I'); ?> 
<?php $domain=shell_exec('hostname -d'); ?> 

<tr><td>Mask</td><td><input name="mask" value="<? echo $mask ?>"</input></td></tr> 
<tr><td>Gateway</td><td><input name="gateway" value="<? echo $gateway ?>"</input></td></tr> 
<tr><td>Address</td><td><input name="ip" value="<? echo $ip ?>"</input></td></tr> 
<tr><td>Domain</td><td><? echo $domain ?></td></tr> 
<tr><td>Update</td><td><form name="input" method="post"> 

답변

0

기본적으로 파일을 수정해야합니까? 우선 고려해야 할 것은 php가 사용자에 의해 실행되고 그 사용자는 bash 스크립트 파일을 액세스하고 수정할 수있는 충분한 권한이 있어야한다는 것입니다. 그러면 파일을 읽고 매개 변수를 수정 한 다음 다시 쓸 필요가 있습니다. bash 스크립트에 대한 코드가 없으므로 PHP 코드를 조작하는 데 도움이되지는 않지만 PHP 코드는 다음과 같아야합니다.

<?php 
$bashscript =file_get_contents("yourbashfile.sh"); // read the bash script 
//code to manipulate your bash script with the data in $_POST 

file_put_contents("yourbashfile.sh",$bashscript); // and put it back 
?> 
관련 문제