» »

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

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.

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

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.

Karlos ::

Rešil zagato!

Š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 ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Apache in Node.JS

Oddelek: Izdelava spletišč
91824 (1510) dunda
»

problem pri sprembi root gesla v MySQL v Ubuntu

Oddelek: Pomoč in nasveti
231202 (782) killa bee
»

DNS preusmeritev

Oddelek: Omrežja in internet
6870 (662) b3D_950
»

apache virtual host in name serverji

Oddelek: Izdelava spletišč
8982 (670) čuhalev
»

Ubuntu 13.04 Raring Ringtail

Oddelek: Operacijski sistemi
455383 (3325) b3D_950

Več podobnih tem