PHP 코드를 사용하여 Linux 서버 날짜를 변경할 수 있습니까?
이를 위해 Apache에 필요한 권한을 부여할 수 있는 방법이 있습니까?
Apache 루트 권한을 부여하는 프로세스는 무엇입니까?
답변1
Apache에 "루트" 권한을 부여하지 않고도 sudo를 사용하여 이를 수행할 수 있습니다.
apache <hostname> = (root) NOPASSWD: /bin/date
대략적으로 영어로 번역하면 다음과 같습니다.
Apache 사용자가
/bin/date
서버에 비밀번호를 입력하지 않고 루트로 명령을 실행하도록 합니다<hostname>
.
sudo(또는 모든 RBAC 모델에서 이와 동등한 모델)를 사용하면 목표를 달성하는 데 필요한 권한만 특정 사용자에게 노출할 수 있습니다.
그런 다음 PHP에서 다음 명령과 함께 sudo를 전달하면 됩니다.
exec("sudo -su /bin/date <newdate>");
또한 이것이 효과가 없으면 설명서를 확인 /etc/sudoers
하십시오 requiretty
.
Defaults requiretty
sudo를 Apache와 함께 사용할 수 있도록 주석 처리해야 합니다.