Forum » Operacijski sistemi » Update SVN preko Apache (PHP)
Update SVN preko Apache (PHP)
Karlos ::
Ali ima kdo kakšno idejo, kako bi izvedel spodnji ukaz preko Apachija in PHP
Sem probal
pa ne dela.
save_mode = Off
npr.
$o = system('ls');
echo $o;
deluje.
sudo -u vmware -p vmware svn --username uname --password geslo up /var/www/blog/wp-content/plugins/test/
Sem probal
system('sudo -u vmware -p vmware svn --username uname --password geslo up /var/www/blog/wp-content/plugins/test/');
pa ne dela.
save_mode = Off
npr.
$o = system('ls');
echo $o;
deluje.
Sai Baba: "Dam vam to, kar hočete, da boste hoteli to, kar vam želim dati."
BlueRunner ::
Preveri v /var/log/security, da se sudo sploh izvede. Največkrat je težava v temu, da v sudoers nimaš pravilno vpisane vrstice. Tipično uporabljaš napačnega uporabnika, ali pa si pozabil na NOPASSWD.
Če pa imaš Fedoro ali RHEL, potem te pa morda ustavi SELinux - recimo zato, ker hočeš pognati suid program. Spremeni nastavitev iz eforcing v permissive in potem poglej v audit log, če ti bom tam notri zajavkal kaj na to temo.
Če pa imaš Fedoro ali RHEL, potem te pa morda ustavi SELinux - recimo zato, ker hočeš pognati suid program. Spremeni nastavitev iz eforcing v permissive in potem poglej v audit log, če ti bom tam notri zajavkal kaj na to temo.
Gandalfar ::
Ali pa razmisljaj o drugacni strukturi.
Npr nek cron v vmware racunu, ki preverja, ce je v apache writable direktoriju datoteka 'svnup', in se potem izvede `svn up` in odstrani tista datoteka.
Ker tole, da ti lahko php izvaja sudo ukaze kar klice po tezavah
Npr nek cron v vmware racunu, ki preverja, ce je v apache writable direktoriju datoteka 'svnup', in se potem izvede `svn up` in odstrani tista datoteka.
Ker tole, da ti lahko php izvaja sudo ukaze kar klice po tezavah
schtr4jh ::
Ali pa uporabniku www-data (oziroma apache - odvisno od konfiguracije) dovoliš izvajanje določene datoteke brez gesla. Na ta način sem rešil restartanje apacheja preko php skripte.
metalc ::
Ti bom podal, več možnih vzrokov, upam, da bo eden pravi
1. Poskusi podati celo pot do sudo, npr. /sbin/sudo ali karkoli že je (lahko se razlikuje od OSa do OSa in celo med distribucijami Linuxa). Ni nujno, da ima Apache tak PATH (če ga sploh ima) kot običajni userji.... Če se ne motim, ls sploh ni izvršilna datoteka, ampak ga "prestreže" in izvrši že kar lupina in to je možen razlog, da ti je uspel kar iz prve.
2. Ali je Apache morda chrootan oz. celo teče v jailu (FreeBSD), kar pomeni, da je /, kot ga vidi Apache, nekaj drugega v OS. chroot nekje se uporablje, nekje ne, je pa to kao ena varnostna finta, da če ti že kdo vdre, kao ne more početi pi**arij po celem filesystemu.
3. Kakšne pravice (kdo ga lahko požene) ima sudo? To ugotoviš z ls -l (celapot do sudo). Nato preveri, s kakšnim usernamom teče Apache, ponavadi je to kar apache.
4. Sudo ne more poganjati kar vsak, tudi če ima pravice za zagon. Apachev username (gl. prejšnjo točko) dodaš v nastavitveno datoteko visudo. Le te ne smeš kar odpreti in poeditirati, temveč jo pokličeš z (mislim da) visudo, ki ti odpre vi, po zaprtju pa še ustrezno updata nastavitve. Poskusi z "man visudo" za več informacij
5. Nekatere distribucije Linuxa (predvsem forki Redhata, npr. Fedora, CentOS...) imajo enablan še SELinux, ki ti lahko nekatere stvari kratkomalo prepreči. Najbolje, da imaš odprto namizje. Za Gnome vem,da ti nekje pokaže neko zvezdico in če jo klikneš,vidiš, kdaj in kje je bil ta SELinux v elementu. Ta reč ti sicer zna težiti že, če se kliče kakšna knjižnica, ki ni prevedena s position independent code (PIC)....
Tako, upam, da bo kaj od tega.
1. Poskusi podati celo pot do sudo, npr. /sbin/sudo ali karkoli že je (lahko se razlikuje od OSa do OSa in celo med distribucijami Linuxa). Ni nujno, da ima Apache tak PATH (če ga sploh ima) kot običajni userji.... Če se ne motim, ls sploh ni izvršilna datoteka, ampak ga "prestreže" in izvrši že kar lupina in to je možen razlog, da ti je uspel kar iz prve.
2. Ali je Apache morda chrootan oz. celo teče v jailu (FreeBSD), kar pomeni, da je /, kot ga vidi Apache, nekaj drugega v OS. chroot nekje se uporablje, nekje ne, je pa to kao ena varnostna finta, da če ti že kdo vdre, kao ne more početi pi**arij po celem filesystemu.
3. Kakšne pravice (kdo ga lahko požene) ima sudo? To ugotoviš z ls -l (celapot do sudo). Nato preveri, s kakšnim usernamom teče Apache, ponavadi je to kar apache.
4. Sudo ne more poganjati kar vsak, tudi če ima pravice za zagon. Apachev username (gl. prejšnjo točko) dodaš v nastavitveno datoteko visudo. Le te ne smeš kar odpreti in poeditirati, temveč jo pokličeš z (mislim da) visudo, ki ti odpre vi, po zaprtju pa še ustrezno updata nastavitve. Poskusi z "man visudo" za več informacij
5. Nekatere distribucije Linuxa (predvsem forki Redhata, npr. Fedora, CentOS...) imajo enablan še SELinux, ki ti lahko nekatere stvari kratkomalo prepreči. Najbolje, da imaš odprto namizje. Za Gnome vem,da ti nekje pokaže neko zvezdico in če jo klikneš,vidiš, kdaj in kje je bil ta SELinux v elementu. Ta reč ti sicer zna težiti že, če se kliče kakšna knjižnica, ki ni prevedena s position independent code (PIC)....
Tako, upam, da bo kaj od tega.
Karlos ::
Rešil zagato!
Šele ko sem na koncu ukaza dodal 2>&1 mi je dejansko izpisalo napako in sicer
Potem sem pa zagnal brez sudo in videl da se je dejansko pognal svn samo je še povprašal če shrani plaintext password in ker se je stdout zaključil je prišlo do napake.
Posrečila se mi je elegantna rešitev:
Gre pa drugače za Ubuntu server, dostopen samo preko VPN...
Šele ko sem na koncu ukaza dodal 2>&1 mi je dejansko izpisalo napako in sicer
sudo: no tty present and no askpass program specified
Potem sem pa zagnal brez sudo in videl da se je dejansko pognal svn samo je še povprašal če shrani plaintext password in ker se je stdout zaključil je prišlo do napake.
/usr/bin/svn --username user --password geslo up /var/www/blog/wp-content/plugins/ltso/ 2>&1
Posrečila se mi je elegantna rešitev:
echo yes > yes.txt
<?php system('/usr/bin/svn --username user --password geslo up /var/www/blog/wp-content/plugins/ltso/ 2>&1 <yes.txt'); ?>
Gre pa drugače za Ubuntu server, dostopen samo preko VPN...
Sai Baba: "Dam vam to, kar hočete, da boste hoteli to, kar vam želim dati."
Zgodovina sprememb…
- spremenil: Karlos ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Apache in Node.JSOddelek: Izdelava spletišč | 1977 (1663) | dunda |
» | problem pri sprembi root gesla v MySQL v UbuntuOddelek: Pomoč in nasveti | 1294 (874) | killa bee |
» | DNS preusmeritevOddelek: Omrežja in internet | 965 (757) | b3D_950 |
» | apache virtual host in name serverjiOddelek: Izdelava spletišč | 1067 (755) | čuhalev |
» | Ubuntu 13.04 Raring RingtailOddelek: Operacijski sistemi | 5712 (3654) | b3D_950 |