RPM Build Problem

C

chrigu99

Grünschnabel
Hallo zusammen

Ich habe ein Problem mit einem von mir erstellten RPM.
Die Befehle in der %install Section, ab sed, werden auf dem System, auf welchem das fertige RPM installiert wird, einfach nicht ausgeführt und ich stehe auf dem Schlauch und komme nicht weiter. Hat mir eventuell jemand von Euch einen Tip?

Code:
Summary: bla switchOffline
Name: switchOffline
Version: 1.0
Release: 10
Group: System/Utilities
License: GPL
Source: switchOffline-1.0.tar.gz

%description
This script can switch a site on the server offline and show to the visitor a html message.

%prep
%setup

%install
mkdir -p /var/www/switchOffline
cat switchOffline > /usr/bin/switchOffline
sed 's/^Defaults    requiretty$/\#Defaults    requiretty/g' /etc/sudoers > /tmp/sudoers
cat /tmp/sudoers > /etc/sudoers
bla=`grep "user  ALL=(ALL)       NOPASSWD:/etc/init.d/httpd" /etc/sudoers | cat`
if [ ! -n "$bla" ];
then
        echo 'Defaults:user !requiretty' >> /etc/sudoers
        echo 'user  ALL=(ALL)       NOPASSWD:/etc/init.d/httpd' >> /etc/sudoers
fi

%files
/usr/bin/switchOffline
%attr(666, root, root) /var/www/switchOffline

Danke schonmal!
Gruss Chris
 
Zuletzt bearbeitet:
RPM-Bau ohne %{buildroot} ist schlichtweg PFUI.

Such Dir ein Tutorial zum Bau von RPMs für Deine Distro und lies Dir ein paar Beispiele für ordentliche SPEC-files durch.

Und da

Code:
%attr([B]777[/B], root, root) /var/www/switchOffline
wird mir auch vorschriftsmäßig schlecht, 777, the REAL number of the beast.
 
Hast Du mir eine Empfehlung für ein Tutorial zum Spec-File-Bau? Ich hab bis jetzt noch kein gutes gefunden.

Edit:

Besser? :)
Code:
%attr(666, root, root) /var/www/switchOffline
 
Zuletzt bearbeitet:
Hast Du mir eine Empfehlung für ein Tutorial zum Spec-File-Bau? Ich hab bis jetzt noch kein gutes gefunden.

Dann hast Du nicht richtig oder gar nicht gesucht (und in der Zeit bis zu Deiner Antwort hast Du es so oder so nicht gemacht).

Edit:

Besser? :)
Code:
%attr(666, root, root) /var/www/switchOffline

Nein, schlimmer, obwohl, jetzt kann es zumindest keinen solchen Schaden mehr anrichten wie zuvor, aber das, was es vermutlich tun soll, kann es jetzt auch nicht mehr.

Wenn ich mir allerdings ansehe, WAS es scheinbar tun soll, dann ist es eh eine der absolut schlechtesten Ideen aller Zeiten.

Code:
echo 'user  ALL=(ALL)       NOPASSWD:/etc/init.d/httpd' >> /etc/sudoers
WTF?

Wie heisst die Domain auf der der entsprechende Webserver läuft?

"www.come_and_get_me.de"?

oder

"www.(Self)_DoS_fuer_Arme.de"?

OMG, das wird ja immer schlimmer:

Code:
sed 's/^Defaults    requiretty$/\#Defaults    requiretty/g' /etc/sudoers > /tmp/sudoers

cat /tmp/sudoers > /etc/sudoers
Ein RPM soll in einer solch zentralen Systemdatei rumfummeln dürfen? Und dann noch SO?

Sowas willst Du ALLEN ERNSTES auf einem SERVER installieren?

(OK, so wie es zusammen geschustert ist, wird es zum Glück wahrscheinlich eh nicht funktionieren, hoffentlich ist niemand hier so besoffen und "korrigiert" den Kram, damit es funktioniert.)
 
Zuletzt bearbeitet von einem Moderator:
Dann hast Du nicht richtig oder gar nicht gesucht (und in der Zeit bis zu Deiner Antwort hast Du es so oder so nicht gemacht).

Es ist nicht das erste Päckli welches ich schreibe und ich habe bereits länger nach einem anständigen Tutorial gesucht.

Wenn diese ja so einfach zu finden sind, kannst Du mir sicher eines empfehlen?

Doch, dies kann es auch jetzt noch machen. Es wird dort nur temporär ein HTML-File geschrieben und die User, welche das Programm überhaupt bedienen können, beschränken sich auf einen sehr kleinen Kreis. Von daher schätze ich ein geringes Risiko ein. Erst müsste ein Angreifer auf das System kommen um Schaden anzurichten.

Edit:
Der Sicherheitsgedanke soll meine Sache bleiben, ich weiss, dass es nicht ganz ungefährlich ist. Meine Frage stellte sich nach der Funktion und nicht nach der Sicherheit.
 
Code:
cat switchOffline > /usr/bin/switchOffline
sed 's/^Defaults    requiretty$/\#Defaults    requiretty/g' /etc/sudoers > /tmp/sudoers
cat /tmp/sudoers > /etc/sudoers
bla=`grep "user  ALL=(ALL)       NOPASSWD:/etc/init.d/httpd" /etc/sudoers | cat`
if [ ! -n "$bla" ];
then
        echo 'Defaults:user !requiretty' >> /etc/sudoers
        echo 'user  ALL=(ALL)       NOPASSWD:/etc/init.d/httpd' >> /etc/sudoers
fi


und sowas gehört nicht in die install-section^^
 

Ähnliche Themen

JBidWatcher: Problem bei loading Auctions in Verbindung mit mySQL

Problem mit HSPA+ Modem Huawei E353 - Installation unmöglich?

Apache /var/www zu /home/ich/www wechseln

dovecot und postfix Konfiguration Problem

Akonadi startet nicht mehr

Zurück
Oben