Fórum Ubuntu CZ/SK
Ostatní => Ubuntu Server => Téma založeno: 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
-
webovy server na tohle nebude mit prava, co takle pouzit utilitu k tomu urcenou, tj ssh (http://wiki.ubuntu.cz/SSH)?
-
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ář.
-
na to se treba v php pouzivaji funkce system, shell_exec, exec atd.
-
A v PHP by to tedy šlo?
-
jiste, ale i v jinych jazycich
-
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.
-
takle bez specifikace na co presne to chces pouzit je tezke neco radit
-
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.
-
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 ?
-
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.
-
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
-
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.
-
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?
-
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.
-
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
-
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?
-
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 ...
-
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
-
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.
-
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.
-
..
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 ;)
-
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.
-
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
-
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.
-
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?
-
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.
-
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
-
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.
-
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
-
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.
-
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?) ...
-
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.
-
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
-
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/)
-
no ja hadam ze to nechce takhle resit proto ze si to chce vyzkouset :D