Suexec neu kompilieren

Distributionen: Fedora Core, CentOS

Zuerst lädt man sich das Apache-SRPM (httpd*.src.rpm) von einem Mirror herunter (für Fedora z.B. von http://wftp.tu-chemnitz.de/pub/linux/fedora-core/updates/4/SRPMS/) und installiert das SRPM (rpm -i).

Anschließend sich geht man in das SPECS-Verzeichnis und editiert die httpd.spec. Um Zeile 260 herum findet sich der configure-Aufruf, bei dem auch die Parameter für suexec festgelegt werden. So kann man z.B. die minimale, für suexec erlaubte ID anpassen:

 --with-suexec-uidmin=93 --with-suexec-gidmin=93 \

Mittels rpmbuild -ba SPECS/httpd.spec wird dann das neue RPM gebaut.

Ggf. müssen noch einige devel-Pakete installiert werden.

Achtung: Unter Fedora Core 4 gibt es den Bug, dass einige devel-Pakete noch mit dem alten Redhat-Schlüssel signiert sind, wodurch das Installieren mit yum scheitert. Leider ist Redhat der Ansicht, dass dies kein Bug ist und daher auch erst in Fedora Core 5 behoben werden muss (Bug 160988 - yum default config on FC4 fails because packages signed with RH key). Daher ist derzeit der sauberste Weg, ggf. noch den alten Redhat-Schlüssel zu installieren:

rpm--import /etc/pki/rpm-gpg/RPM-GPG-KEY

Anschließend findet sich unter RPMS/i386/ das neue httpd-RPM, das auch das neue suexec enthält. Entweder man entpackt das RPM manuell und extrahiert nur /usr/sbin/suexec, welches man anschließend nach /usr/sbin kopiert und mit den richtigen Rechten versieht (bei Fedora Core 4: {{chown root.apache /usr/sbin/suexec; chmod 4510 /usr/sbin/suexec}}). Oder man installiert das eigene RPM direkt. In diesem Fall muss aber darauf geachtet werden, eine höhere Release-Nummer im Spec-File einzusetzen, damit das RPM auch Vorrang vor RPMs der Distribution hat.

Im Laufe der Zeit wird es vermutlich immer mal wieder Apache-Updates geben. Hier muss jedes Mal suexec neu kompiliert werden, da die Distributionspakete es entweder überschreiben (manuelle Installation) oder die neuen Pakete ggf. nicht installiert werden (höhere Release-Nummer).