CentOS 서버의 GUI 용 PHP 스크립트를 작성하고 있습니다. 테스트 목적으로 Apache를 localhost로 설정했습니다. Cent OS는 연결된 USB 장치를 자동 마운트하지 않습니다. PHP에서는 USB 장치가 연결되어 있는지 확인한 후 마운트하고 사용자의 파일 내용을 나열해야합니다. 이것은 bash에서 매우 간단하지만, PHP로는 작동하지 않습니다. 나는 exec()
과 shell_exec()
기능을 가지고 놀았습니다. 둘 다 수동 즉, 명령을 시도 : PHP : USB 장치 마운트
exec("./mountlist.sh");
내가 같은 일을 것를 호출 할 수 있습니다 PHP에서 함수가, 아니면 내가 뭔가를 놓친 거지 :
shell_exec("sudo mount /dev/sdb1 /mnt");
과 bash는 스크립트를 통해
exec
및
shell_exec
기능이 있습니다. 두 함수 모두 쉘에서 잘 작동합니다. mount가 루트 명령이기 때문에 나는 bash 스크립트에
sudo
을 포함 시켰습니다.
sudo 권한을 가지고 실행중인 모든 사용자 php는 무엇입니까? 암호가 없어도 권한이 부여됩니까? –
나는 PHP와 bash에 꽤 익숙하지 않다.하지만 사용자가하지 않는다면 문제가되지 않을 것이다. Apache 사용자에게 루트 권한을 부여하는 방법은 무엇입니까? – user1628380
아파치는 이미 root privs로 시작하므로 (포트 80에 바인드 할 수 있음) 웹 서버를 루트로 실행하는 것은 근본적으로 나쁜 아이디어이기 때문에 삭제합니다. –