Scripts ausführen

Status
Für weitere Antworten geschlossen.

Whitesheep

Benutzer
Mitglied seit
29. Mai 2009
Beiträge
81
Punkte für Reaktionen
2
Punkte
14
Hallo erst mal,

hoffe das ich hier richtig gelandet bin, wenn nicht dann sagt mir bitte wo der Post hin muss :)

Also geht um folgendes...
Habe auf meiner DS viele Scripts liegen die mir verschiedene Sachen erleichtern (z.B. Playlisten neu schreiben) würde diese Scripts gerne ausführen können ohne das ich mich per SSH/TELNET an der DS anmelden muss. Anmeldung an der Weboberfläche ist okay, weil ich so und so immer über die Audiostation Music höre.

Habe versucht aus einem Post wo es um crontab Weboberfläche ging (http://www.synology-forum.de/showthread.html?t=2217&highlight=crontab) den quelltext raus zu suchen den ich für mich bräuchte aber ich werde leider aus dem PHP nicht schlau.

Kann mir jemand weiterhelfen?
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.021
Punkte für Reaktionen
274
Punkte
393

Whitesheep

Benutzer
Mitglied seit
29. Mai 2009
Beiträge
81
Punkte für Reaktionen
2
Punkte
14
Danke erst mal für die Antworten habe mir jetzt an Hand des Stichpunktes exec() alles rausgesucht was ich gebraucht habe :rolleyes:

Nur jetzt habe ich ein Problem die von der HP gestarteten Scripts laufen unter dem User "nobody" Problem daran ist um z.B. ein ping auszuführen brauche ich root rechte.
Wie bekomme ich es hin das das Script mit root Rechten läuft?

sudo gibt es ja auf der DS nicht und su kann von nobody nicht ausgeführt werden.:(

Habt ihr noch irgendwelche anderen Ideen :confused:
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
su kann nicht ausgeführt werden, weil su voraussetzt, dass eine gültige Shell für den User (in dem Fall nobody) in /etc/passwd eingetragen ist. Zudem kann nur ein Prozess der unter root läuft seine Rechte ändern, nobody kann niemals zu root werden.

Für dein Vorhaben würde ich dir php via ipkg empfehlen. Dann kannst du einen cronjob anlegen, der das php Script (ggf auch unter root) via Kommandozeileninterpreter von php aufruft. Das default PHP von Synology hat leider den Kommandozeileninterpreter nicht mit dabei.
Mehr zu ipkg findest du in unserem Wiki.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Das default PHP von Synology hat leider den Kommandozeileninterpreter nicht mit dabei.

Bei mit ist ein Synology-php-Interpreter unter /usr/bin und ein IPKG-php-Interpreter unter /opt/bin

Rich (BBCode):
Synology> ll /usr/bin/php
-rwxr-xr-x    1 root     root      6935604 Jan 28 09:56 /usr/bin/php
Synology> ll /opt/bin/php
-rwxr-xr-x    1 root     root      2864812 Apr 18  2009 /opt/bin/php

Itari
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Weisst du seitwann der Interpreter bei Synology mitdabei ist? Ich frage mich gerade wie lange ich das wohl schon übersehen habe ;)
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Weisst du seitwann der Interpreter bei Synology mitdabei ist? Ich frage mich gerade wie lange ich das wohl schon übersehen habe ;)

Nicht so genau. Aber den, den ich haben, der ist seit dem 28. Januar 2010 dabei :D

Itari
 

Whitesheep

Benutzer
Mitglied seit
29. Mai 2009
Beiträge
81
Punkte für Reaktionen
2
Punkte
14
Hey ihr,

also habe jetzt mal bei mir geschaut habe kein /opt auch nicht nachdem ich die neuste Firmware drauf gemacht habe.

Hast du das vieleicht doch selber nach installiert ?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
/opt hast du nur wenn du ipkg installierst
Wie itari aber schrieb scheint der php Interpreter nun auch mit der Firmware installiert zu werden. Also brauchst du ipkg php eigentlich nicht mehr. Du kannst dem php Interpreter direkt den Pfad zu einem php Script übergeben (auf der Kommandozeile) und der führt es dann aus. Wenn jetzt also der Aufruf von root erfolgt (z.b. via cron), dann hat das aufgerufene php Script ebenfalls root Rechte
 

Whitesheep

Benutzer
Mitglied seit
29. Mai 2009
Beiträge
81
Punkte für Reaktionen
2
Punkte
14
ah okay Post falsch verstanden gehabt ;)
Aber wenn man es anständig liest leuchtet es ein ^^

Wenn ich das richtig verstanden habe (was ich hoffe :)) dann wollt ihr das Script nicht direkt ausführen sondern ein cronjob starten der das Script ausführt. Damit die benötigten Rechte durch die cron mitgegeben werden.

Kann mir eventuell einer von euch für dieses Vorhaben eine kleine Anleitung geben oder in Link zu einem Post wo es schon mal gemacht wurde?
Weil ich habe noch nie etwas mit php gemacht und habe im Moment keine Idee wie ich das Ganze in code umsetzen soll.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat