Fórum Ubuntu CZ/SK

Ostatní => Ubuntu Server => Téma založeno: strom159 22 Ledna 2012, 19:16:08

Název: Vyvolávací script
Přispěvatel: strom159 22 Ledna 2012, 19:16:08
Zdravím,
už dlouho si lámu hlavu jak se v ubuntu serveru vyvolávají scripty. V PHP je třeba copy write atd. atd., ale jak tohle udělat tady? Třeba chtěl bych aby server napsal do příkazové řádky shutdown -r -t 60, tento script abych mohl vyvolat z webu. Jak bych toho mohl dosáhnout. Samozřejmě by to nebylo vypnutí, ale třeba vytvoření virtuálního uživatele v pure-ftpd.
Děkuji
Název: Re:Vyvolávací script
Přispěvatel: Šuohob 22 Ledna 2012, 19:38:59
webovy server na tohle nebude mit prava, co takle pouzit utilitu k tomu urcenou, tj ssh (http://wiki.ubuntu.cz/SSH)?
Název: Re:Vyvolávací script
Přispěvatel: strom159 22 Ledna 2012, 19:44:54
Spíš mi šlo o něco co by mohlo být automatický. Že to nějaký script vyvolá, když se třeba odešle formulář.
Název: Re:Vyvolávací script
Přispěvatel: Šuohob 22 Ledna 2012, 19:54:48
na to se treba v php pouzivaji funkce system, shell_exec, exec atd.
Název: Re:Vyvolávací script
Přispěvatel: strom159 22 Ledna 2012, 19:57:51
A v PHP by to tedy šlo?
Název: Re:Vyvolávací script
Přispěvatel: Šuohob 22 Ledna 2012, 20:00:03
jiste, ale i v jinych jazycich
Název: Re:Vyvolávací script
Přispěvatel: strom159 22 Ledna 2012, 20:03:22
No, a radil by jsi mi něco lepšího?
SSH se mi nezdá, nejlepší potom jsemobjevil nějaký CGI, ale to nevím co je.
Název: Re:Vyvolávací script
Přispěvatel: Šuohob 22 Ledna 2012, 20:06:15
takle bez specifikace na co presne to chces pouzit je tezke neco radit
Název: Re:Vyvolávací script
Přispěvatel: strom159 22 Ledna 2012, 20:09:23
Jasně promiň.
Ještě jsem přemýšlel a když to jde v PHP tak to asi bude nejlepší.
Popíšu ti co mám za úmysl:
Chtěl bych udělat třeba formulář v html a navázaný na PHP.
Kde by třeba bylo Uživatelské jméno, heslo a nevím co ještě.
Potom by server vytvořil virtuálního uživatele, který by se jmenoval tak jak by se vyplnilo, takže by to chtělo proměnou.
Název: Re:Vyvolávací script
Přispěvatel: Zerog 22 Ledna 2012, 20:10:01
CGI viz http://cs.wikipedia.org/wiki/Common_Gateway_Interface (http://cs.wikipedia.org/wiki/Common_Gateway_Interface)

php exec viz tu http://php.net/manual/en/function.shell-exec.php (http://php.net/manual/en/function.shell-exec.php)

Pokud chces jen nejakou blbinku pouzij ten exec. Funguje to proste jen tak, ze php zavola script kterej mas ulozen nekde na serveru a vysledek toho scriptu je zas vracen php. Jak uz tu bylo receno, musis osetrit prava, ale jinak na tom nic neni.

Edit: nechapu k cemu je to dobre. Jako virtualniho uzivatele do systemu ?
Název: Re:Vyvolávací script
Přispěvatel: strom159 22 Ledna 2012, 20:14:08
Dobré to je k tomu, aby se např. vytvořil virtuální uřivatel pure-ftpd a nějaký člen si mohl nahrát obsah na internet.
Název: Re:Vyvolávací script
Přispěvatel: Zerog 22 Ledna 2012, 20:23:08
A tak slo by to tak resit. I kdyz nevim jak moc je to bezpecne. Na nahrani souboru by ti stacil i php upload. Zalezi co s tim zamyslis. Jestli ti tam bezi i SSH coz asi ano .... a mas to propojene ... uzivatel ssh = ftp ... nevim
Název: Re:Vyvolávací script
Přispěvatel: strom159 22 Ledna 2012, 20:28:07
Mě tam nejde asi tolik o rychlost, server není zamýšlen, že by se přihlašovalo stovky uřivatelů a vytvářelo. To ne, spíš tak nanejvýše 15-50 uživatelů denně. Což by scriptům v php určitě nevadilo. Spíš by mě zajímala bezpečnost.
Název: Re:Vyvolávací script
Přispěvatel: starenka 22 Ledna 2012, 20:30:59
No bezpecnost php nic moc (a lidi patlajici skripty tomu taky nepridavaji), navic volani systemu je taky silenost. Co takle to zapsat nekam do db/souboru a jednou za cas by bezel cron, kterej by to vytvoril?
Název: Re:Vyvolávací script
Přispěvatel: Zerog 22 Ledna 2012, 20:33:47
Citace
No bezpecnost php nic moc (a lidi patlajici skripty tomu taky nepridavaji)
Nesmysl. Bude to presne tak bezpecne jak bezpecne bude napsany ten upload (kontrola co se uploaduje, etc)...

Urcite nejde rict ze php uploud je nebezpecny.
Název: Re:Vyvolávací script
Přispěvatel: Šuohob 22 Ledna 2012, 20:36:07
bezpecny to bude tak, jak si to udelas :D

kdyz zvladnes autentifikaci uzivatele, aby ti neuatentifikovany user nemohl tvorit FTP usty jak se mu zamane, tak by to bezpecne byt mohlo
Predstavil bych si to takto:
pomoci PHP overis uzivatele a za pomoci funkce exec spustis (bash) skript vytvor-usera.sh, ktery ti vytvori noveho usera a vrati funkci exec informaci o tom, jestli byl uspesny
Název: Re:Vyvolávací script
Přispěvatel: strom159 22 Ledna 2012, 20:38:35
Jo, to by mohlo fungovat, já vůbec nepotřebuji aby to něco vypisovalo. Jenom vytvořilo.

EDIT:
Takový začátečnický dotaz.
soubor.sh je jako ve windows soubor.bat?
Název: Re:Vyvolávací script
Přispěvatel: Zerog 22 Ledna 2012, 20:41:52
Citace
bezpecny to bude tak, jak si to udelas :D

kdyz zvladnes autentifikaci uzivatele, aby ti neuatentifikovany user nemohl tvorit FTP usty jak se mu zamane, tak by to bezpecne byt mohlo
Predstavil bych si to takto:
pomoci PHP overis uzivatele a za pomoci funkce exec spustis (bash) skript vytvor-usera.sh, ktery ti vytvori noveho usera a vrati funkci exec informaci o tom, jestli byl u

A jestli ma uzivatele ftp propojene s uzivateli v systemu a normalne nastaveno ssh tak kazdej uzivatel muze prolejzat system  ;)

Chce si to proste dat majzla no ...
Název: Re:Vyvolávací script
Přispěvatel: starenka 22 Ledna 2012, 20:42:06
Citace
No bezpecnost php nic moc (a lidi patlajici skripty tomu taky nepridavaji)
Nesmysl. Bude to presne tak bezpecne jak bezpecne bude napsany ten upload (kontrola co se uploaduje, etc)...

Urcite nejde rict ze php uploud je nebezpecny.
Aha, tak proto je urcite na kazdym hostingu vypnutej shell_exec, popen, get_url_contents apod a dalsi zillion funkci, ze jo? A mit na webu skript, kterej neco pousti s vokorenenyma pravama je fakt silenost.

Proste mi neprijde dobry tohle mit dostupny z webu. Nechtel bych urazit tazatele, ale jelikoz se na tohle pta, php/web asi moc nezna, tudiz bych si dovolil predpokladat, ze to asi moc bezpecne neudela. Zapsani do db a pusteni cronem je imo 1. mnohem jednodussi 2. mnohem bezpecnejsi
Název: Re:Vyvolávací script
Přispěvatel: strom159 22 Ledna 2012, 20:46:38
Samozřejmě bych neudělal aby uživatel, který se vytvoří měl práva na systém přiděl by se jeho kořenový adresář a nikam jinam by nemohl.
Pokud se nepletu v pure-ftpd je funkce -d.
Co se týká scriptu to bych musel domyslet.
Název: Re:Vyvolávací script
Přispěvatel: Zerog 22 Ledna 2012, 20:46:58
Citace
    Citace

        No bezpecnost php nic moc (a lidi patlajici skripty tomu taky nepridavaji)

    Nesmysl. Bude to presne tak bezpecne jak bezpecne bude napsany ten upload (kontrola co se uploaduje, etc)...

    Urcite nejde rict ze php uploud je nebezpecny.

Aha, tak proto je urcite na kazdym hostingu vypnutej shell_exec, popen, get_url_contents apod a dalsi zillion funkci, ze jo? A mit na webu skript, kterej neco pousti s vokorenenyma pravama je fakt silenost.

Proste mi neprijde dobry tohle mit dostupny z webu. Nechtel bych urazit tazatele, ale jelikoz se na tohle pta, php/web asi moc nezna, tudiz bych si dovolil predpokladat, ze to asi moc bezpecne neudela. Zapsani do db a pusteni cronem je imo 1. mnohem jednodussi 2. mnohem bezpecnejsi

Tak mam pocit ze jsme navzajem nepochopili, jak to druhy myslel, samozdrejme ze je php uploud urcite riziko ale neni sam o sobe nebezpecny.

Jinak samozdrejme souhlasim ze shell_exec a spol je nebezpecnej ... bo nikdy nevis co tam uzivatel foukne.
Název: Re:Vyvolávací script
Přispěvatel: starenka 22 Ledna 2012, 20:50:58
Citace
..

Tak mam pocit ze jsme navzajem nepochopili, jak to druhy myslel, samozdrejme ze je php uploud urcite riziko ale neni sam o sobe nebezpecny.

Jinak samozdrejme souhlasim ze shell_exec a spol je nebezpecnej ... bo nikdy nevis co tam uzivatel foukne.
jedna za mnohe http://blog.kotowicz.net/2011/06/file-path-injection-in-php-536-file.html ;)

koncim OT ;)
Název: Re:Vyvolávací script
Přispěvatel: strom159 22 Ledna 2012, 20:52:28
Co kdyby soubor ve kterým je shell_exec dali práva pouze pro server potom by se udělala zaheslovaná stránka to bych se přihlásil a na další stránce ve který by mohl být přístup pouze když jste přihlášený byl include na soubor ve kterým je shell_exec.
Název: Re:Vyvolávací script
Přispěvatel: starenka 22 Ledna 2012, 20:54:34
jednodussi a imo bezpecnejsi je opravdu (opakuju):
- auth pres web server (kazdej to umi) + https
- skript nekam zapise, co a kde vytovrit (zatim si porad nerek nic konkretniho)
- cron co bezi kazdy 1-2 minuty nacte soubor a udela neco

ale delej jak chces
Název: Re:Vyvolávací script
Přispěvatel: Zerog 22 Ledna 2012, 20:55:04
Citace
Co kdyby soubor ve kterým je shell_exec dali práva pouze pro server potom by se udělala zaheslovaná stránka to bych se přihlásil a na další stránce ve který by mohl být přístup pouze když jste přihlášený byl include na soubor ve kterým je shell_exec.

Proc to vubec nechces resit tak jak rika starenka ? Prece jenom je to jednoduche a bezpecnejsi.
Název: Re:Vyvolávací script
Přispěvatel: strom159 22 Ledna 2012, 20:57:30
OK, tak to se ozvu za chviličku musím se kouknout jak bych to mohl udělat.
Spíš nechápu ten druhý bod: skript nekam zapise, co a kde vytovrit (zatim si porad nerek nic konkretniho)
Třeba soubor.sh, tenhle script?
Název: Re:Vyvolávací script
Přispěvatel: starenka 22 Ledna 2012, 20:58:49
php skript - ten zapise do db/nebo nekam do souboru. druhej skript, kterej pousti cron si to umi precist a podle toho neco udela. Znova rikam, nic konkretniho, co to ma delat si nerek, takze pisu takle obecne.
Název: Re:Vyvolávací script
Přispěvatel: Zerog 22 Ledna 2012, 21:01:07
Citace
php skript - ten zapise do db/nebo nekam do souboru. druhej skript, kterej pousti cron si to umi precist a podle toho neco udela. Znova rikam, nic konkretniho, co to ma delat si nerek, takze pisu takle obecne.

chce vytvorit uzivatele do FTP
Název: Re:Vyvolávací script
Přispěvatel: strom159 22 Ledna 2012, 21:01:51
Dobře,
chtěl bych aby se provedl tento příkaz:
sudo pure-pw useradd AA -d BB -u myftp
kde AA by byla proměná 1 tedy uživatel a BB kořenový adresář.
V php by to bylo ve formuláři.
Název: Re:Vyvolávací script
Přispěvatel: starenka 22 Ledna 2012, 21:03:57
V tom pripade php skript prida nakonec souboru (treba) /tmp/ftpd neco jako "user:adresar" a ten bashskript si tohle naparsuje a dohodi do prikazu a pak obsah smaze. Hotovo
Název: Re:Vyvolávací script
Přispěvatel: strom159 22 Ledna 2012, 21:06:26
To vypadá jednoduše, ale mohl by jsi mi prosím poradi jak? Stačilo by navést. Hlavně tyhle tři hlavní body: přidat, vzít, smazat.

EDIT: Přidat nepotřebuji.
Název: Re:Vyvolávací script
Přispěvatel: Petr Merlin Vaněček 22 Ledna 2012, 21:06:49
Co se týče FTP - nebylo by jednodušší uživatele nevytvářet na úrovni systému, ale jako záznam v DB? Pak by to PHP mohlo dle libosti upravovat a PureFTP (či cokoliv jiného) přechroustat jako login.

Bez crona a nechutností do systému (ala exec - taky má svůj nepopiratelný význam, ale člověk musí vědět, co dělá, že?) ...
Název: Re:Vyvolávací script
Přispěvatel: strom159 22 Ledna 2012, 21:10:39
Pravda - asi nejlepší řešení.
MySQL jsem řešil u proftpd, ale u pure-ftpd to mě nějak nedoklaplo. :-D
Díky všem.
Název: Re:Vyvolávací script
Přispěvatel: Petr Merlin Vaněček 22 Ledna 2012, 21:17:34
Taky si myslím, že to bude nejlepší :)
Z hlediska bezpečnosti o moc procent :D :D :D

http://www.howtoforge.com/pureftpd_mysql_virtual_hosting
Název: Re:Vyvolávací script
Přispěvatel: strom159 22 Ledna 2012, 21:25:37
Já tady našel v češině, který by měl být stejný pouze přeložený, nebo aspoň podobný.
http://www.themiss.cz/2010/06/pure-ftpd-mysql/ (http://www.themiss.cz/2010/06/pure-ftpd-mysql/)
Název: Re:Vyvolávací script
Přispěvatel: rainbof 03 Února 2012, 15:51:58
no ja hadam ze to nechce takhle resit proto ze si to chce vyzkouset :D