Autor | Zpráva | ||
---|---|---|---|
prava Profil * |
#1 · Zasláno: 9. 1. 2010, 13:16:11
Ahoj, potřeboval bych, aby složka img měla po zkopírování na ftp práva 777 a ne 755. Lze to nějak předem nastavit? Děkuji
|
||
mckay Profil |
#2 · Zasláno: 9. 1. 2010, 13:47:20
prava:
Jde to pomocí php funkce automaticky <?php chmod(); ?> Nebo jak píšeš přes ftp tak to je obvykle Soubor->Atributy a tam to napíšeš. |
||
prava Profil * |
#3 · Zasláno: 9. 1. 2010, 13:53:11
mckay:
Tovím, že to jde přes Soubor - Atributy...Ale já potřebuji, aby ta složka po zkopírování už byla nastavená. Nemůžu papk po uživateli chtít aby si to sám nastavoval. Jak to udělám pomocí fce chmod() (kam a jak napsat?) Potřeboval bych nastavit 3 složky na práva 777. Díky |
||
mckay Profil |
#4 · Zasláno: 9. 1. 2010, 13:55:05
prava:
Jestli to chápu správně, potřebuješ to udělat tak, aby uživatel aplikace nemusel nic dělat ručně. Tedy pokud má aplikace nějakou instalaci, zadej do té instalace chmod(); složkám na které to potřebuješ. |
||
panther Profil |
#5 · Zasláno: 9. 1. 2010, 13:55:10
prava:
„Jak to udělám pomocí fce chmod()“ ach, ta lenost.. „kam a jak napsat?“ nejlépe do nějakého PHP scriptu. |
||
prava Profil * |
#6 · Zasláno: 9. 1. 2010, 14:11:42
mckay:
Tak bohužel fce Chmod() nepomohla (dočetl jsem se, že na 99% hostingů nefunguje...) Warning: chmod() [function.chmod]: Unable to access /img/ in ... on line 93 Warning: chmod() [function.chmod]: SAFE MODE Restriction in effect. The script whose uid is 1001 is not allowed to access / owned by id 0 in ... on line 93 Je vůbec nějaké řešení? Nebo musím po uživatelích chtít ruční nastavení? |
||
mckay Profil |
#7 · Zasláno: 9. 1. 2010, 14:16:26
prava:
Pokud nefunguje, řešení vynechávající uživatele dle mého neexistuje. |
||
imploder Profil |
#8 · Zasláno: 9. 1. 2010, 16:53:47 · Upravil/a: imploder
Neměly by hostingy správně tohle mít už nastavené, aby PHP skripty mohly na soubory ve svém WWW rootu? FTP server může při uploadu práva nastavit, ale to je záležitost jeho provozovatele (hostingu).
EDIT: Ta chyba vypadá, že je ve skriptu špatně zadaná cesta - / je kořenový adresář, tam skript nemůže mít přístup a adresář img v něm není. Kořenový adresář vlastní uživatel s uid 0, tj. root. Asi na začátku cesty přebývá lomítko (má to být cesta relativní, NE absolutní). |
||
prava Profil * |
#9 · Zasláno: 9. 1. 2010, 17:12:06
imploder:
chmod("img", 0777); A teď tato chyba: Warning: chmod() [function.chmod]: Operation not permitted in... on line 93 Asi to opravdu nepůjde... |
||
sysel Profil |
#10 · Zasláno: 10. 1. 2010, 00:29:25
Boze, boze, podle formulace dotazu by náhodný kolemjdoucí čtenář usoudil, že si někdo chce hrát na svém a snad ani k Internetu nepřipojeném počítači. Ale v zápětí je ohromen informací, že drtivá většina administrátorů hostingů takové věci prostě zakazuje.
O povolení takových nadstandardních manipulací je nutné se domluvit přímo se správci hostingu, ale moc bych na to nesázel. Oprávnění x0777 je opravdu velmi benevolentní a pokud je míněno doopravdy, lze jej snáze přednastavit pomocí ****** bitu. Ono je těžko radit, když není popsaná úloha celkově. Možná, kdybychom věděli více o záměrech, proč to tak má být, třeba bychom nabídli i jiná řešení, která vůbec chmod() nepotřebují. |
||
prava Profil * |
#11 · Zasláno: 10. 1. 2010, 13:15:21
sysel:
Záměry - Redakční systém, který si uživatel stáhne, v instalaci zadá údaje pro spojení s databází, tyto údaje se uloží do souboru, který se sám vytvoří do složky db --> a právě této složce potřebuji nějak nastavit práva, aby k tomu vytvoření v pořádku došlo, podobné to je se složkou img, kam uživatelé budou uploadovat své fotky. |
||
imploder Profil |
#12 · Zasláno: 10. 1. 2010, 17:21:45
sysel:
Jak teda nastavit práva tak, aby vlastník webu (prava) k nim měl přístup, jeho skripty taky, ale nikdo jiný na serveru ne? Pokud PHP běží jako mod_php, běží pod uživatelem Apache, takže při nastavení práv 0700 (tj. vlastník (prava může všechno, ostatní uživatelé nic) k souboru skript mít přístup nebude. Ani 0770 nebude stačit, protože uživatel Apache a prava nejsou ve stejné skupině. Nevím teda o lepším řešení než práva 0777 a spoléhat se, že safe_mode tím, že kontroluje UID vlastníka skriptu a UID vlastníka souboru, soubor před čtením cizími skripty ochrání. |
||
Časová prodleva: 5 dní
|
|||
sysel Profil |
#13 · Zasláno: 15. 1. 2010, 18:43:13
Promiňte odmlku, stále jsem nepochopil, jak to celé probíhá. Z nějakého serveru si uživatel stáhne instalaci ..., ale to si může nahrát i z CD nebo z flešky. Instalace znamená zřejmě spuštění instalačního scriptu a ten je asi napsán v PHP. Ovšem spuštění programového scriptu v PHP lokálně uživatelem je něco úlpně jiného, než provádění PHP scriptů během generování stránky klientovi. Také to podléhá jiným pravidlům. Redakční systém pak zřejmě běží na lokální stanici uživatele, ta ovšem musí mít nejspíš puštěný Apache s PHP modulem.
Ale toto je jen jeden možný výklad. Rovněž je z výše uvedeného popisu možné vydedukovat, že balík s redakčním systémem se pokouším uploadovat přes ftp na cílový server a tam potom dokončit instalaci spuštěním nějakého scriptu, který mj. také vytvoří a chmod-uje nějaké adresáře. Takové skopičiny bych však jako správce serveru vůbec nedovoloval, takže pak je možné jen se domluvit s adminem. Instalace je vždy problémový okamžik a neměla by se provádět na běžícím serveru popřípadě na dálku. Netuším, jak je redakční systém složitý, ale většinou se CMS budují nad nějakou databází, která sama o sobě řeší oprávnění uživatelů. To mi přijde celkem rozumné a umožňuje na jednom serveru hostování několika redakčních systémů, které o sobě ani nemusejí vědět. |
||
Časová prodleva: 13 let
|
0