Frage

Im Grunde bin ich versucht, den Neustart eines service aus einer php-web-Seite.

Hier ist der code:

<?php
exec ('/usr/bin/sudo /etc/init.d/portmap restart');
?>

Aber, in /var/log/httpd/error_log, Ich bekommen

nicht in der Lage zu ändern, zu sudoers gid:Operation not permitted

und in /var/log/messages, bekomme ich

Sep 22 15:01:56 ri-kernel:audit(1222063316.536:777):avc:denied { getattr } for pid=4851 comm="sh" name="var" dev=dm-0 ino=114241 scontext=root:system_r:httpd_sys_script_t tcontext=system_u:object_r:var_t tclass=dir
Sep 22 15:01:56 ri-kernel:audit(1222063316.549:778):avc:verweigert { setrlimit } für pid=4851 comm="sudo" scontext=root:system_r:httpd_sys_script_t tcontext=root:system_r:httpd_sys_script_t tclass=process
Sep 22 15:01:56 ri-kernel:audit(1222063316.565:779):avc:denied { read } for pid=4851 comm="sudo" name="shadow" dev=dm-0 ino=379669 scontext=root:system_r:httpd_sys_script_t tcontext=system_u:object_r:shadow_t tclass=file
Sep 22 15:01:56 ri-kernel:audit(1222063316.568:780):avc:denied { read } for pid=4851 comm="sudo" name="shadow" dev=dm-0 ino=379669 scontext=root:system_r:httpd_sys_script_t tcontext=system_u:object_r:shadow_t tclass=file
Sep 22 15:01:56 ri-kernel:audit(1222063316.571:781):avc:verweigert { setgid } für pid=4851 comm="sudo" capability=6 scontext=root:system_r:httpd_sys_script_t tcontext=root:system_r:httpd_sys_script_t tclass=capability
Sep 22 15:01:56 ri-kernel:audit(1222063316.574:782):avc:verweigert { setuid } für pid=4851 comm="sudo" capability=7 scontext=root:system_r:httpd_sys_script_t tcontext=root:system_r:httpd_sys_script_t tclass=capability
Sep 22 15:01:56 ri-kernel:audit(1222063316.577:783):avc:verweigert { setgid } für pid=4851 comm="sudo" capability=6 scontext=root:system_r:httpd_sys_script_t tcontext=root:system_r:httpd_sys_script_t tclass=capability

In meinem visudo, ich habe diese Zeilen

Benutzeralias WWW=apache

WWW ALL=(ALL) NOPASSWD:ALL

Können Sie mir bitte helfen ?Mache ich etwas falsch ?

Danke für Eure Hilfe,

tiBoun

War es hilfreich?

Lösung

Das problem ist nicht mit sudo im moment, aber mit SELinux, die (vernünftigerweise) auf verweigern eingestellt HTTPD, von root-Privilegien.
Sie müssen entweder explizit erlauben (Sie können verwenden audit2allow für diese), oder legen Sie SELinux zu Freizügig statt.Ich würde vorschlagen, den ehemaligen.

Andere Tipps

Der Fehler, den Sie bekommen scheint im Zusammenhang mit Ihrer SELinux-Konfiguration.Sie könnten versuchen, Sie vorübergehend zu deaktivieren, die.

Als ein beiseite, ich würde stark vorschlagen, dass Sie passen Sie Ihre sudo-Konfiguration restriktiver sein.

User_Alias WWW=apache
Cmnd_Alias WEBCMDS=/etc/init.d/portmap
WWW ALL=NOPASSWD: WEBCMDS

Ich habe das problem vor kurzem und die akzeptierte Antwort oben geholfen.Allerdings möchte ich in diesem post beantworten zu erarbeiten, damit die nächste person nicht müssen verbringen viel Zeit, wie ich!

Folgen Sie in Abschnitt 7 unter dem folgenden link: https://wiki.centos.org/HowTos/SELinux.

Do grep mit httpd_sys_script_t.

Grundsätzlich sind die Schritte:

# grep httpd_sys_script_t /var/log/audit/audit.log | audit2allow -M httpdallowsudo
# semodule -i httpdallowsudo.pp

Dies ist wohl so etwas wie der Versuch, sudo in eine nicht-interaktive shell.

Wenn Sie eine Suche nach 'sudo' in der apache-Benutzer E-mail-Protokoll finden Sie vielleicht Dinge wie diese

sudo:sorry, muss ein tty to run sudo

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top