php und rechte

SaTaN

Erfahrenes Mitglied
Hallo,

hier werden die Profis gefragt, denn ich weis da nicht mehr weiter. :-)

Ich versuche ein Programm von meinen Linuxserver über PHP zu starten.
Nur irgendwie will er nicht.
PHP:
$sys = system("nmap -sS -O -v <host, oder ip> 2>&1 >> /tmp/port.log");
Die Fehlermeldung lautet :

You requested a scan type which requires r00t privileges, and you do not
have them. QUITTING!


Mir ist klar das ich keine rOOt rechte habe aus dem APACHE.
chgrp
chown
Hat das was mit denn links zu tun ?

Nur wie kann ich das machen ?

Bitte um Hilfe.

Vielen Dank

euer SaTaN
 
mach sowas mit Perl ! Außerdem halte ich es für verdammt gefährlich für deinen Webserver.

Du könntest dich vorher als SuperUser einloggen mit dem System command, aber davon rate ich dir dringends ab.
 
du schreibst mit vi ein textfile (als root):

#!/bin/sh
#
nmap -sS -O -v <host, oder ip> 2>&1 >> /tmp/port.log

dann
chmod 755 textfile
chmod +s textfile

und in deinem php:

$sys = system("textfile");
 
Hey melmager

Cool genau sowas habe ich mir vorgestellt.

Nur wie übergebe ich die Variable $ip z.b. ins shel script ?

Möchte ja nicht immer mit der selben ip arbeiten.

Vielen Dank erstmal.

euer SaTaN
 
werte übergeben - no Problem :-)

textfile 192.168.111.111

sprich die werte einfach mit leerzeichen an das shellscrip ranhängen

im shellsript kommt du mit $1 an den wert ran

nmap -sS -O -v $1 2>&1 >> /tmp/port.log
 
Ich halte es für SEHR gefährlich so auf einen Befehl zuzugreifen.
BENUTZT "SUDO". In der Bash "man sudo" eintippen und mal durchlesen.
Man kann über PHP das Passwort abfragen lassen, was dann verwendet wird den Befehl als superuser aufzurufen ohne als superuser einzuloggen oder direkten zugriff auf shellscripts zu gestatten. Das ist wesentlich sicherer!
 
Hey Neuro,

keine Ahnung wovon du da redest.
Komm doch mal abends wieder vorbei.

Hey melmager,

ich habe alles so gemacht wie du es hier gepostet hast.
Die Meldung kommt immer noch.

You requested a scan type which requires r00t privileges, and you do not have them. QUITTING!


Ich habe als root mit VI eine Datei erstellt.
Dann alles das gemacht was da rein kommt

chmod 755
chmod +s
Das ganze habe ich dann ins /etc/init.d verzeichnis abgespeichert.

So rufe ich das auf in PHP.
PHP:
$sys = system("/etc/init.d/nmap_port");

Was kann es denn nur sein ?
Bitte um Hilfe.

Vielen Dank

euer SaTaN
 
@Neurodeamon
Einspruch euer Ehren -

mann muss schlicht vermeiden das das shellchript kein Schreibrecht für
andere User erhält damit das keiner Editieren kann.

und Passwörter von root über Internet zu Übertragen ist nach meiner
Meinung schlimmer :-)

Aber ich gebe zu auch meine Lösung ist ein Tor ins System :-(
 
Hallo melmager,

könntest du noch was dazu sagen ?
Ich weis da leider nicht mehr weiter.

Vielen Dank

euer SaTaN
 
hmmm im moment fällt mir nur das ein:

#!/bin/sh -p

als erste Zeile

und falls immer fehler dann noch mal den

chmod 4755 dasfile

ansonsten muss ich doch mal meinen dicken Unixwälzer aus den Keller holen :-(

ps eigendlich gehört der Thread mittlerweile hier nicht mehr her -smile
hat ja nix mehr mit php zu schaffen :-)

ach ja noch was /etc verzeichnis ist keine gute idee
hau das script mal in /tmp
 
Zuletzt bearbeitet:
Zurück