Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

Webplatform maken om server uit te zetten

Pagina: 1
Acties:

  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 13-11 15:45
Hallo,

Ik draai momenteel een cotuenr strike source servertje. Nu, ik zou graag hebben dat mjin vrienden -die niets van linux kennen- deze server ook kunnen beheren. Met fopen etc. kan ik hen de serverconfig zeer eenvoudig laten bewerken.

Soms is het echter nodig dat de coutner strike source server even moet uitgezet worden, herstart of gestart worden. Ik zou hier graag via een webinterface een mogelijkheid voor willen maken, ik heb alleen geen idee hoe ik dit kan realiseren.

Ik heb al even gegoogeld maar dan kom ik uit nij game panels etc, dat hoef ik niet. Ik maak liever zelf iets simepel.

Hopelijk kunnen jullie mij dat even vertellen.

Alvast bedankt ;)

  • simon
  • Registratie: Maart 2002
  • Laatst online: 14-11 11:49
http://nl3.php.net/system voor PHP, moet je met wat nadenk werk wel uit kunnen komen.

|>


  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 13-11 15:45
Ik zal het eens bekijken! Bedankt!


*edit*
code:
1
2
3
<?php
$result = exec(escapeshellcmd("tar -xvvf /path/to/archive.tar -C /path/to/extract/to/"));
?>


Ik denk dat dit de sleutel tot mijn succes is! Bedankt.

[ Voor 73% gewijzigd door Lorduh op 21-09-2008 11:32 ]


  • GlowMouse
  • Registratie: November 2002
  • Niet online
Dat plus [PHP] Daemon of aparte apache want de Apache-user hoort css niet zomaar te kunnen herstarten in een normale configuratie.

  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 13-11 15:45
Hmmz, allemaal beetje chinees.

Mijn bedoeling is gewoon dat je de server simpel kan beheren. Ik ga er ook een FTP servertje op plaatsen, maar die is niet verbonden met apache. (gewoon de dir waar de configs etc instaan). Is het dan goed genoeg dat ik gewoon een standaard apache draai?

Met de FTP server geef ik trouwens toegang tot alleen een bepaalde map, zodanig je andermans files niet kan verwijderen...)

[ Voor 18% gewijzigd door Lorduh op 21-09-2008 11:45 ]


  • dtech
  • Registratie: Juni 2005
  • Laatst online: 19-09 15:37
Die FTP server heeft er niet zo veel mee te maken.
Het gaat erom dat de gebruiker waaronder apache draait geen rechten hoort te hebben om een daemon zoals een css server te herstarten of uit te zetten.
In plaats van root-achtige rechten te geven aan zo'n apache user kun je dan beter instellen dat voor bepaalde commando's geen speciale rechten nodig hebt (dmv sudo), dat moet je dan wel instellen en dat staat in dat topic uitgelegd.

  • AW_Bos
  • Registratie: April 2002
  • Laatst online: 14:39

AW_Bos

Liefhebber van nostalgie... 🕰️

Wat ook een optie is dat je die opdrachten door Crond laat uitvoeren elke minuut.

Je kan dus in de databse zetten dat hij moet restarten, en als Crond na de minuut weer langskomt kan hij dingen op rootniveau (ik geloof dat Crond idd op Root-user draait) doen. Bijv een shutdown -r now (als je bijv. de hele server een schop wilt geven voor een herstart). Vergeet niet het het vinkje voor reboot uit te zetten dan in de cronjob voordat je een loopje draait ;)

[ Voor 13% gewijzigd door AW_Bos op 21-09-2008 14:18 ]

Telecommunicatie van vroeger
🚅Alles over spoor en treintjes


  • Room42
  • Registratie: September 2001
  • Niet online
Ariën Clay schreef op zondag 21 september 2008 @ 14:17:
[...] (ik geloof dat Crond idd op Root-user draait) [...]
code:
1
2
3
4
bram@mainbuntu:~$ crontab -l
no crontab for bram
bram@mainbuntu:~$ sudo crontab -l
no crontab for root

Daar heb je dus invloed op ;)

[ Voor 7% gewijzigd door Room42 op 21-09-2008 14:27 ]

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Je kunt toch de CSS server gewoon met een rcon command rebooten, of bedoel je echt de hele server zelf?

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 13-11 15:45
Grijze Vos schreef op zondag 21 september 2008 @ 14:56:
Je kunt toch de CSS server gewoon met een rcon command rebooten, of bedoel je echt de hele server zelf?
Ja weet ik, maar mijn vrienden kunnen er niet aan. En ik wil ze net iets meer geven dan alleen rcon ;).

  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 13-11 15:45
Zozo,

Ik heb dus webmin nu draaien etc. Ik kan dus handig en snel cronjobs maken. Nu vraag ik mij nog steeds af hoe ik via een PHP script en een database kan vertellen aan een cronjob dat ie al dan niet een shutdown moet doen. Ik weet wel hoe ik een script kan maken met PHP en MySQL dat bv als de server uit moet ergens een variable, bv. $server_reboot = 1; etc met database kan fixen. Ik weet alleen niet hoe ik dit dan met een cronjobje dat dan ook daadwerkelijk kan laten uitvoeren...

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 14:38

MueR

Admin Devschuur® & Discord

is niet lief

Als ik me niet vergis is er voor Usermin (en dus ook webmin) een module verkrijgbaar om dit te doen. Staat dacht ik zelfs op de Webmin website ;)

Anyone who gets in between me and my morning coffee should be insecure.


  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 13-11 15:45
Leuk en wel, maar ik wil net -niet- met webmin gaan werken.

Ik wil dus gewoon simpel mijn servertje veilig kunnen laten rebooten via PHP al dan niet met een cron.

[ Voor 54% gewijzigd door Lorduh op 25-09-2008 21:00 ]


  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
Je maakt een cron naar je cron.php bestand:
*/1 * * * * * root php /var/www/cron.php

in die trand :P

  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 13-11 15:45
Jup dat had ik zonet door, dom van me. Zit alleen nu nog ergens wat beveiliging op, dat al dan die chown zijn.

  • Patriot
  • Registratie: December 2004
  • Laatst online: 14-11 11:25

Patriot

Fulltime #whatpulsert

Lorduh schreef op donderdag 25 september 2008 @ 19:53:
Zozo,

Ik heb dus webmin nu draaien etc. Ik kan dus handig en snel cronjobs maken. Nu vraag ik mij nog steeds af hoe ik via een PHP script en een database kan vertellen aan een cronjob dat ie al dan niet een shutdown moet doen. Ik weet wel hoe ik een script kan maken met PHP en MySQL dat bv als de server uit moet ergens een variable, bv. $server_reboot = 1; etc met database kan fixen. Ik weet alleen niet hoe ik dit dan met een cronjobje dat dan ook daadwerkelijk kan laten uitvoeren...
Het idee is dus dat je met een gewoon PHP script (door apache gedraait) niet in staat zou moeten kunnen zijn om het commando uit te voeren. Als je dan met de cronjob zorgt dat je het als superuser uitvoert, heb je die rechten wel en werkt het. Volg je dat?

  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 13-11 15:45
Jup zo ben ver ben ik. Had het nog niet door hehe. Nu nog uitzoeken hoe ik bij die "superuser" geraak.

Wil in elk geval iedereen al bedanken, we hebben al heel wat bijgeleerd :)

http://www.cyxla.com/pages/chown.html

Is wat voor me geloof ik. Ga me morgen in de materie verdiepen hehe.

[ Voor 23% gewijzigd door Lorduh op 25-09-2008 21:40 ]


  • Patriot
  • Registratie: December 2004
  • Laatst online: 14-11 11:25

Patriot

Fulltime #whatpulsert

Bij die superuser kom je door sudo te gebruiken. Ik weet niet zeker of dat bij het aanmaken van de cronjob moet (dus sudo voor het commando van het aanmaken van een cronjob zetten), of dat het in het commando zelf moet. Ik vermoed het eerste, omdat je bij het uitvoeren van sudo volgens mij altijd geprompt wordt voor een password.

  • JJerome
  • Registratie: Oktober 2007
  • Laatst online: 15-11 10:28
Makkelijk is om apache sudo toegang te geven tot de CSS server binary (om dus te restarten e.d.). Mits sudo geinstalleerd is kun je dit doen in het "sudoers" bestand wat normaliter te vinden is in /etc.

Netjes om te doen is een taskqueue aanmaken maar daar zal ik je niet meer vervelen want dat hebben hierboven al meerdere geopperd.

  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 13-11 15:45
Vreemd:

su root /opt/lampp/lib/php/opt/lampp/htdocs/down.php

Heb ik als commando.

Toch krijg ik:

Uitvoer van opdracht su root /opt/lampp/lib/php/opt/lampp/htdocs/down.php ..

bash: /opt/lampp/lib/php/opt/lampp/htdocs/down.php: No such file or directory

Zou nochtans moeten kloppen. Iemand idee wat ik verkeerd uitsteek?

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
Doe even cat /opt/lampp/lib/php/opt/lampp/htdocs/down.php, als je dan error krijgt, bestaat het bestand wss niet.

  • FatalError
  • Registratie: Juni 1999
  • Laatst online: 14-11 19:48
Wat dacht je van SSH en daar iets klikbaar van maken op de desktop ofzo?
op deze fiets: http://bashcurescancer.com/run_remote_commands_with_ssh.html
liefst natuurlijk met keys ofzo.

If it ain't broken, tweak it!


  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 13-11 15:45
FatalError schreef op vrijdag 26 september 2008 @ 19:46:
Wat dacht je van SSH en daar iets klikbaar van maken op de desktop ofzo?
op deze fiets: http://bashcurescancer.com/run_remote_commands_with_ssh.html
liefst natuurlijk met keys ofzo.
Ofwel begrijp ik je verkeerd ofwel begrijp jij me verkeerd. Ik -wil en zal- het via een webplatform doen.


Dit krijg ik trouwens:
Uitvoer van opdracht su root cat /opt/lampp/lib/php/opt/lampp/htdocs/down.php ..

/bin/cat: /bin/cat: cannot execute binary file

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Lorduh schreef op donderdag 25 september 2008 @ 21:37:
Jup zo ben ver ben ik. Had het nog niet door hehe. Nu nog uitzoeken hoe ik bij die "superuser" geraak.

Wil in elk geval iedereen al bedanken, we hebben al heel wat bijgeleerd :)

http://www.cyxla.com/pages/chown.html

Is wat voor me geloof ik. Ga me morgen in de materie verdiepen hehe.
Chown is om de eigenaar van een bestand te veranderen op het filesystem. En dat is iets wat hier niet eens nodig is, dus heb je er niets aan.

SUDO is inderdaad het commando om te schakelen naar Super User, maar dat is, naar mijn weten, alleen binnen Ubuntu, naar mijn weten doet su namelijk hetzelfde... :) En is ook wat meer algemeen geloof ik binnen Linux (Of het moet veranderd zijn)... :)
Lorduh schreef op vrijdag 26 september 2008 @ 18:49:
Vreemd:

su root /opt/lampp/lib/php/opt/lampp/htdocs/down.php

Heb ik als commando.

Toch krijg ik:

Uitvoer van opdracht su root /opt/lampp/lib/php/opt/lampp/htdocs/down.php ..

bash: /opt/lampp/lib/php/opt/lampp/htdocs/down.php: No such file or directory

Zou nochtans moeten kloppen. Iemand idee wat ik verkeerd uitsteek?
Volgens mij moet je eerst su root doen.
Vervolgens moet je PHP aanspreken (voor Windows kan dat met php.exe) en dan het script opgeven.
Voor Windows (ik weet het, het is geen Linux, maar mijn idee erover is wel hetzelfde):
php.exe "X:\pad\naar\je\script.php"... :) Zal in Linux wel iets zijn als php pad\naar\je\script.php... :)

  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 13-11 15:45
Ik gleoof idd ook dat su (bijna) hetzelfde is. Maar ik doe toch als eerst su root?

su root /opt/lampp/lib/php/opt/lampp/htdocs/down.php

Das mijn cron, of heb ik het nu mis?

  • BCC
  • Registratie: Juli 2000
  • Laatst online: 14:25

BCC

Is de root account uberhaupt ingeschakeld op die machine? Anders mag je er uiteraard niet naar su-en. In Ubuntu bijv. staat hij default uit en hoor je alles via sudo te doen.

En cron draait standaard onder root, dus je hoeft niet expliciet meer su root te doen.
Dus ja kan of:
./opt/lampp/lib/php/opt/lampp/htdocs/down.php
of
php /opt/lampp/lib/php/opt/lampp/htdocs/down.php

opnemen

[ Voor 39% gewijzigd door BCC op 26-09-2008 20:23 ]

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


Verwijderd

Je hebt mis dat het script als root zal worden uitgevoerd. De user waarmee de webserver draait zal niet even superuser rechten krijgen met su. Hiervoor heb je sudo.

Je zou overigens net zo goed een simpel programma'tje kunnen schrijven in C (paar regels), compilen, en setuid rechten op de binary zetten. Zo kun je het uitvoeren als de owner van de binary, welke dan natuurlijk root moet zijn zodat je de service kan herstarten. Zo doe ik het zelf ook.

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
BCC schreef op vrijdag 26 september 2008 @ 20:22:

Dus ja kan of:
./opt/lampp/lib/php/opt/lampp/htdocs/down.php
dan moet je wel dit bovenaan je script hebben staan:
#/usr/bin/php

Anders weet hij toch nooit wat hij er mee moet doen?
su root /opt/lampp/lib/php/opt/lampp/htdocs/down.php

Das mijn cron, of heb ik het nu mis?
Nee dat is niet je cron :? Je cron staat in /etc/crontab

Daar moet je dat regeltje intikken:
*/1 * * * * root php /opt/lampp/lib/php/opt/lampp/htdocs/down.php 

  • AW_Bos
  • Registratie: April 2002
  • Laatst online: 14:39

AW_Bos

Liefhebber van nostalgie... 🕰️

'/opt/lampp/lib/php/opt/lampp/htdocs/down.php'
vind ik een raar pad. Ik vermoed dat het pad naar PHP er bij zit ingebakken door een spatie-fout:

*/1 * * * * root php opt/lampp/htdocs/down.php 

lijkt me logischer, of anders:

*/1 * * * * root /opt/lampp/lib/php  /opt/lampp/htdocs/down.php 

Telecommunicatie van vroeger
🚅Alles over spoor en treintjes


  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 13-11 15:45
Ik heb het bestand crontab bewerkt. Heb MAILTO ook even naar mijn adres gezet. Toch krijg ik niets van ouput ook niet in mijn mailbox...

Iemand een idee wat er verkeerd kan gaan?

  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09 14:42
Als je script geen output geeft gaat de cronjob ook niets mailen :)

  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 13-11 15:45
PHP:
1
2
3
4
5
<?php
        $output = shell_exec("shutdown -r now");
        echo "<p>" . $output . "</p>";
                
?>

Zou toch output moeten geven?

[ Voor 4% gewijzigd door Lorduh op 27-09-2008 15:51 ]


  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09 14:42
Lorduh schreef op zaterdag 27 september 2008 @ 15:51:
PHP:
1
2
3
4
5
<?php
        $output = shell_exec("shutdown -r now");
        echo "<p>" . $output . "</p>";
                
?>

Zou toch output moeten geven?
Ik zou het niet daarmee doen. Er is kans dat je PHP-process gekilled word nog voordat je output word geprint?

  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 13-11 15:45
Charlie Murphy schreef op zaterdag 27 september 2008 @ 18:32:
[...]

Ik zou het niet daarmee doen. Er is kans dat je PHP-process gekilled word nog voordat je output word geprint?
Hoe zou je het dan wel doen?

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
Je kan shutdown een delay van een paar seconden kunnen geven
shutdown -r -t 10

Maar weet niet 100% zeker of die direct een output geeft.

  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 13-11 15:45
Helpt jammer genoeg niet.

  • BCC
  • Registratie: Juli 2000
  • Laatst online: 14:25

BCC

Zit die output van shutdown niet op &2 ?

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 13-11 15:45
Wat bedoel je? Ik krigj in lek geval nog steeds geen mail en nog minder een shutdown.

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
Dan zit er iets niet goed in je code.

Want dat je geen mail krijgt ok, maar hij zou zeker weten uit moeten gaan!

Wat heb je nou precies allemaal gedaan?

/opt/lampp/htdocs/shutdown.php
code:
1
2
3
<?php
system("shutdown -r now");
?>


en dan vi je in:
/etc/crontab:
* * * * * root  /opt/lampp/bin/php /opt/lampp/htdocs/shutdown.php

Alleen wel even in shutdown.php een switch inbouwen zodat hij niet elke keer blijft rebooten.

  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 13-11 15:45
Jup heb ik allemaal staan. Ik begrijp er niets meer van.

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
Dan heeft waarschijnlijk PHP niet genoeg rechten om die system uit te voeren.

Wat als je er dit van maakt?
code:
1
2
3
<?php
system("sudo shutdown -r now");
?>


Ik neem aan dat je dit al gezien hebt in de comments van de docs?
If you need to run root-level commands, such as to reboot a service, the utility 'sudo' will let you handle linux permissions. In our example we use 'sudo' to allow apache temporary root access to restart a service. We can then use:

system("sudo service dhcpd restart")

You also need to examine the /etc/sudoers file to specify what permissions to grant. Hope this helps someone!

  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 13-11 15:45
Werkt nog niet :(. Waar vind ik onder welke gebruiker mijn webserver draait? Mogelijk moet ik die dan in sudoers toevoegen...

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Ik zal het wel niet helemaal snappen, maar je hebt maar 2 dingen nodig. Het correcte pad en de juiste rechten...

Juist pad is te achterhalen met which / locate
Juiste rechten zijn te krijgen met sudo...

  • Lorduh
  • Registratie: Februari 2008
  • Laatst online: 13-11 15:45
Gewoon uitvoeren in een Terminal lukt nu wel... Alleen nog niet via een cronjob :(

Werkt intussen een "/" te veel. en de optie -r zorgde ook voor probleem.

[ Voor 109% gewijzigd door Lorduh op 28-09-2008 20:01 ]

Pagina: 1