Linux 컴퓨터에서 http 서버의 버튼을 클릭 할 때 실행되는 스크립트가 있습니다. 파일은 cgi-bin에 있으며 실행 가능합니다.Apache CGI 쉘에서 Bash 명령이 실행되지 않습니다.
그러나 그것은 결코 변화하지
DEVICE=p32p1
BOOTPROTO=static
DHCPCLASS=
HWADDR=00:01:2e:48:f0:f3
IPADDR=3333333333
NETMASK=4444444444
ONBOOT=yes
가 나오지
#!/bin/bash
IPADDR=`echo "$QUERY_STRING" | sed -n 's/^.*IPADDR=\([^&]*\).*$/\1/p' | sed "s/+/ /g"`
SUBNET=`echo "$QUERY_STRING" | sed -n 's/^.*SUBNET=\([^&]*\).*$/\1/p' | sed "s/+/ /g"`
DHCP=`echo "$QUERY_STRING" | sed -n 's/^.*DHCP=\([^&]*\).*$/\1/p' | sed "s/+/ /g"`
(작업이 arent 헤드 개) 파일 테스트
sed -i.bak "s/IPADDR=.*/IPADDR=$IPADDR/g" test
sed -i.bak "s/NETMASK=.*/NETMASK=$SUBNET/g" test
echo "Content-type: text/html"
echo ""
DHCP=`echo "$QUERY_STRING" | sed -n 's/^.*DHCP=\([^&]*\).*$/\1/p' | sed "s/+/ /g"`
echo "<html><head><title>IP CHANGED</title></head>"
echo "<body>IP changed to: "
echo "$IPADDR <br>"
echo "<body>SUBNET changed to: "
echo "$SUBNET <br>"
echo "DHCP $DHCP"
echo "</body></html>"
내용 작업이 arent이 스크립트의 두 줄 것 같다 파일.
또한 여기에이 파일 시스템 권한 및 SELinux를 구성 문제의 조합이어야 내 HTML
<form action="cgi-bin/IPChange.sh" method="get">
Enter an IP Address: <input type="text" name="IPADDR"></input><br>
Enter a Subnet Mask: <input type="text" name="SUBNET"></input><br>
<input type="radio" name="DHCP" value="on">Enable DHCP
<input type="radio" name="DHCP" value="off">Disable DHCP<br>
<input type="submit" name="subbtn" value="Submit">
<form>
아파치는 파일을 편집 할 수있는 권한이 없습니다. 그 외에, bash 스크립트를 웹 프로세스에서 실행하도록하는 것은 끔찍한 생각처럼 들린다. – mvp
Im을 구현하는 간단한 경우, 어떻게 아파치 사용 권한을 부여 할 수 있습니까? – user758114
아파치의 권한을 높이는 대신 모든 사용자에게'test' 파일에 쓰기 권한을 부여하는 것이 좋습니다. chmod a + x/path/to/test – mti2935