PHP 웹 페이지의 실행되지 않 unix 명령한 후에도 루 업데이트
문제
기본적으로 나 노력하고 다시 시작에서 서비스 php 웹 페이지입니다.
는 코드는 다음과 같습니다:
<?php
exec ('/usr/bin/sudo /etc/init.d/portmap restart');
?>
하지만, /var/log/httpd/error_log
, 나옵
할 수 없을 변경하는 루 gid:작업에 허용되지 않습
고서/var/log/messages,나
Sep22 15:01:56ri 커널:감사(1222063316.536:777):avc:거부{getattr}에 대한 pid=4851comm="sh"name="var"dev=dm-0ino=114241scontext=루트:system_r:httpd_sys_script_t tcontext=system_u:object_r:var_t tclass=dir
Sep22 15:01:56ri 커널:감사(1222063316.549:778):avc:거부{setrlimit}에 대한 pid=4851comm="sudo"scontext=루트:system_r:httpd_sys_script_t tcontext=루트:system_r:httpd_sys_script_t tclass=과정
Sep22 15:01:56ri 커널:감사(1222063316.565:779):avc:거부{읽}에 대한 pid=4851comm="sudo"name="shadow"dev=dm-0ino=379669scontext=루트:system_r:httpd_sys_script_t tcontext=system_u:object_r:shadow_t tclass=file
Sep22 15:01:56ri 커널:감사(1222063316.568:780):avc:거부{읽}에 대한 pid=4851comm="sudo"name="shadow"dev=dm-0ino=379669scontext=루트:system_r:httpd_sys_script_t tcontext=system_u:object_r:shadow_t tclass=file
Sep22 15:01:56ri 커널:감사(1222063316.571:781):avc:거부{setgid}에 대한 pid=4851comm="sudo"기능=6scontext=루트:system_r:httpd_sys_script_t tcontext=루트:system_r:httpd_sys_script_t tclass=능
Sep22 15:01:56ri 커널:감사(1222063316.574:782):avc:거부{setuid}에 대한 pid=4851comm="sudo"기능=7scontext=루트:system_r:httpd_sys_script_t tcontext=루트:system_r:httpd_sys_script_t tclass=능
Sep22 15:01:56ri 커널:감사(1222063316.577:783):avc:거부{setgid}에 대한 pid=4851comm="sudo"기능=6scontext=루트:system_r:httpd_sys_script_t tcontext=루트:system_r:httpd_sys_script_t tclass=능
내 visudo,나는 추가인
User_Alias WWW=apache
WWW 모든=(모든)NOPASSWD:모든
할 수 있습니 저를 도와주세요?내가 뭔가 잘못하고 있는가?
당신의 도움을 주셔서 감사합니다,
tiBoun
해결책
문제는 sudo 에서는 순간,그와 함께 SELinux, 는(합리적인)설정을 거부하면 아파치에서 얻는 루트 권한이 있습니다.
당신이 필요하거나 명시적으로 허용하는 이(사용할 수 있는 audit2allow 이를 위해),또는 SELinux 를 설정을 허가하는 대신 합니다.나는 제안하였습니다.
다른 팁
오류에 당신을 얻을 것 같은 관련 SELinux 를 구성합니다.당신이 시도할 수 있는 일시적으로 비활성화다.
옆으로,나는 강하게 당신을 조정하 sudo 구성을 더 제한적입니다.
User_Alias WWW=apache
Cmnd_Alias WEBCMDS=/etc/init.d/portmap
WWW ALL=NOPASSWD: WEBCMDS
가 발생하는 문제가 최근에 받아들이 대답 위었습니다.그러나 나는 다음과 같이 대답하여 정교한 같은,그래서 그 다음 사람하지 않는 시간을 보낼 필요가 많다.
따라 7 절은 다음의 링크: https://wiki.centos.org/HowTos/SELinux.
하와 grep httpd_sys_script_t
.
기본적으로 단계는 다음과 같습니다:
# grep httpd_sys_script_t /var/log/audit/audit.log | audit2allow -M httpdallowsudo
# semodule -i httpdallowsudo.pp
이것은 아마도 내려가려는 것과 같이 실행 sudo 에서는 비대화형 쉘입니다.
을 할 경우 grep 위해'sudo'에서 아파치 사용자 메일이 로그를 찾을 수 있습 같은 것들이
sudo:죄송이 있어야 합 tty 실행 sudo