Chmod nebo chown přes PHP

Chmod nebo chown přes PHP
« kdy: 03. 06. 2012, 09:53:36 »
Zdravím,

chtěl bych se zeptat, zda existuje možnost, jak pomocí php skriptu změnit atributy na souboru/adresáři, případně jeho vlastníka (usera), pokud daný soubor byl nahrán přes ftp (atributy 644 -rw-r--r--)?

Jedná se mi o "aktualizační skript", který provede update souborů na ftp (přičemž port 21 je nedostupný - vypnutý ve firewallu mikrotiku).

Díky.
« Poslední změna: 05. 06. 2012, 16:17:14 od Petr Krčmář »


DK

Re:chmod nebo chown přes php (při ftp userovi)
« Odpověď #1 kdy: 03. 06. 2012, 11:24:17 »
funkce exec, system, chmod, chown

ale pri spravne nastavenem php ti prvni dve funkce nepujde, treti jenom castecne a ctvrta taky ne => z duvodu bezpecnosti

Re:chmod nebo chown přes php (při ftp userovi)
« Odpověď #2 kdy: 03. 06. 2012, 11:54:31 »
Díky za reakci - dané funkce jsem samozřejmě už zkoušel (všechny jsou not permitted).

Spíš jsem se ptal na nějak "kličku", třeba pomocí htaccess, výjimka pro určitou ip nebo tak něco.

Ale z podstaty věci (bezpečnosti) asi vyplývá, že to jít nemůže.

Zopper

  • *****
  • 866
    • Zobrazit profil
Re:chmod nebo chown přes php (při ftp userovi)
« Odpověď #3 kdy: 03. 06. 2012, 14:07:10 »
Pokud máte nad webserverem kontrolu, můžete si to nastavit podle potřeby. Pokud ne, zkuste se ještě domluvit s administrátorem na přidání shellového příkazu do Cronu, který by udělal co potřebujete - třeba jednou denně.

Re:chmod nebo chown přes php (při ftp userovi)
« Odpověď #4 kdy: 03. 06. 2012, 15:25:47 »
Asi bych to měl trochu upřesnit...  :)

Update skriptů celé aplikace (cca 1200 souborů) se provádí 2-3x do měsíce, vždy v jinou dobu (reálné využívání aplikace neumožňuje update naplánovat na pevný čas).

Nad webserverem (respektive mnoha webservery) mám kontrolu do té míry, že se připojím na ftp a mohu na ně kopírovat soubory, případně nastavit chmod dle potřeby (k tomu se ale potřebuju nalogovat do mikrotika, povolit ftp port ve firewallu a často se připojovat i do různých VPN).

Z tohoto všeho vyplývá, že update je poměrně pracný a časově náročný. Proto jsem si ho chtěl zjednodušit klasických uploadem 1 zipnutého souboru přes web a následným rozbalením na ftpko. Pod windows, kde se neřeší práva, není problém a vše funguje stoprocentně.

Samozřejmě se nabízí řešení, připojit se ručně na ftp, nastavit chmod na všechny soubory a umožnit phpku zapisovat, kam se mu zachce - toto je ovšem bezpečnostní riziko, které se mi nechce podstupovat.

Proto mě napadlo, jestli se nedá vlastník souboru změnit pouze dočasně během updatu a následně uvést vše do původního stavu (třeba pomocí htaccess pro určitou ip nebo konkrétní skript)?


DK

Re:chmod nebo chown přes php (při ftp userovi)
« Odpověď #5 kdy: 03. 06. 2012, 15:40:14 »
neda, max muzes tohle resit pres ftp v php - http://php.net/manual/en/book.ftp.php

Zopper

  • *****
  • 866
    • Zobrazit profil
Re:chmod nebo chown přes php (při ftp userovi)
« Odpověď #6 kdy: 03. 06. 2012, 16:27:19 »
A proč je vlastně FTP na mikrotiku zakázané? Pokud to chápu, jde o váš (domácí) router, a webserver je někde jinde - nevidím tedy smysl blokování portu, který očividně využíváte.

Re:chmod nebo chown přes php (při ftp userovi)
« Odpověď #7 kdy: 03. 06. 2012, 18:08:15 »
Ne-e, jedná se o externí routery (mikrotiky), které mají vyblokované ftpka a další porty kvůli bezpečnosti.

DK

Re:chmod nebo chown přes php (při ftp userovi)
« Odpověď #8 kdy: 03. 06. 2012, 18:33:31 »
webftp nepomuze? (hostovane na serveru)

Lupex

Re:chmod nebo chown přes php (při ftp userovi)
« Odpověď #9 kdy: 03. 06. 2012, 19:38:20 »
Co použít sshfs, nebo sftp  s omezením zdrojové IP.

  a nebo to řešit obráceně.
   Ze webserverů si kontrolovat aktualizace bash scriptem s následným stažení a úpravou práv.

Re:chmod nebo chown přes php (při ftp userovi)
« Odpověď #10 kdy: 04. 06. 2012, 18:56:18 »
Díky všem za tipy.

Nakonec jsem si napsal webové rozhraní, ze kterého se to bude hrnout přes klasické php ftp funkce, přičemž na externích mikrotikách se povolí port 21 pouze pro jedinou IP.