abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 06:33 | Komunita

    Přímý přenos (YouTube) z konference LinuxDays 2024, jež probíhá tento víkend v Praze v prostorách Fakulty informačních technologií Českého vysokého učení v Praze (FIT ČVUT). Na programu je spousta zajímavých přednášek.

    Ladislav Hagara | Komentářů: 0
    včera 07:11 | IT novinky

    Elon Musk na akci We, Robot (YouTube, 𝕏) představil Robotaxi, Robovan a vylepšeného Tesla Bota (Optimus).

    Ladislav Hagara | Komentářů: 25
    včera 06:33 | IT novinky

    Internet Archive je offline (𝕏, Bluesky, Mastodon‪). Unikly údaje 31 milionů uživatelů. Probíhal / probíhá na něj DDoS útok.

    Ladislav Hagara | Komentářů: 0
    včera 05:22 | Komunita

    Alyssa Rosenzweig se v příspěvku na svém blogu rozepsala o hraní AAA her na Asahi Linuxu. Na YouTube je záznam její včerejší přednášky na XDC 2024 (X.Org Developer's Conference).

    Ladislav Hagara | Komentářů: 7
    včera 04:55 | IT novinky

    Vláda schválila Národní polovodičovou strategii: Česká republika má velký potenciál stát se významným hráčem v oblasti výroby čipů, zejména v evropském měřítku. Využít tento potenciál je cílem Národní polovodičové strategie, kterou připravilo Ministerstvo průmyslu a obchodu ve spolupráci s experty, a která navazuje na evropský Akt o čipech.

    Ladislav Hagara | Komentářů: 2
    10.10. 18:11 | Zajímavý software

    V lete vyšiel Aeonwave 4.0, ktorý niekoľkonásobne menej vyťažuje procesor pri interpretácií priestorového zvuku než OpenAL Soft. Autor hľadá prispievateľov do knižnice libaaxopenal za účelom pridania ALC_EXT_EFX rozšírení využívaných napr. v hre Doom 3 cez port Dhewm3 v Linuxe.

    atirage21 | Komentářů: 5
    10.10. 15:33 | Nová verze

    Linuxová distribuce Ubuntu 24.10 „Oracular Oriole“ byla vydána. Jde o průběžné vydání s podporou 9 měsíců. Obsahuje mj. Linux 6.11 či GNOME 47 s několika odkazy na první vydání Ubuntu (4.10 „Warty Warthog“) před 20 lety. K dispozici jsou také oficiální deriváty s odlišnými výchozími desktopovými prostředími anebo balíky aplikací.

    Fluttershy, yay! | Komentářů: 2
    10.10. 13:55 | Nová verze

    Deno (Wikipedie), běhové prostředí (runtime) pro JavaScript, TypeScript a WebAssembly, bylo vydáno v nové major verzi 2.0 (YouTube). Důležité změny v Migration Guide.

    Ladislav Hagara | Komentářů: 3
    10.10. 13:33 | Nová verze

    Apache Tomcat (Wikipedie) slaví 25 let. Při té příležitosti byla vydána nová verze 11.0. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    10.10. 12:44 | Nová verze

    Open source 3D herní a simulační engine Open 3D Engine (O3DE) byl vydán v nové verzi 24.09.0. Přehled novinek v poznámkách k vydání. O3DE má nového maskota: Odie.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

    Dotaz: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755

    24.10.2009 17:46 wswolf
    php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Přečteno: 3143×
    Zdravim, mam dva dotazy. Nevite nekdo jak docilit toho aby slozka kterou vytvori PHP pomoci mkdir mela prava 777, ikdyz zadam: mkdir("nazevslozky",0777) stejne se vytvori 755.

    A druhy dotaz je proc patri tato slozka uzivateli i skupine www-data, nebo spis jak zmenit tohoto uzivatele a skupinu. Mam server Ubuntu 8.04

    Diky za rady

    Řešení dotazu:


    Odpovědi

    24.10.2009 17:54 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Když pod stejným uživatelem vytvoříte adresář a následně mu nastavíte práva na 0755 pomocí chmod normálně z shellu, práva se nastaví správně? Uživateli a skupině www-data patří pro to, že pod tímto uživatelem běží webový server.
    24.10.2009 19:20 wswolf
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Jojo to se vytvoří správně. Ale z php to dělám z webové stránky, takže pod uživatelem www-data. Ale nechápu proč tam nejde nastavit 777...
    24.10.2009 19:44 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Ale jde o to i z toho shellu to vyzkoušet pod uživatelem www-data. Přepněte se na něj třeba pomocí su nebo příkazy spusťte přes sudo. Pokud to z shellu nepůjde, může jít buď o parametry připojení souborového systému, nebo SElinux (omezující daného uživatele). Pokud to z shellu půjde, může to být buď nějaká konfigurační volba PHP, nebo také SElinux (omezující Apache nebo PHP).
    Toman avatar 26.10.2009 13:21 Toman | skóre: 29 | blog: Tomanův blog | Kostelec nad Orlicí
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Za všechno může umask :-) Takže je dobré to dělat např. takto:
    function make_dir($dir, $perm) {
      umask(0000);
      mkdir($dir, $perm);
    }
    
    26.10.2009 14:50 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755

    Možná raději takto:

      function mkdir_perm($dir, $perm)
      {
        $old = umask(0000);
        mkdir($dir, $perm);
        umask($old);
      }
    
    Toman avatar 26.10.2009 21:25 Toman | skóre: 29 | blog: Tomanův blog | Kostelec nad Orlicí
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    A nebo tak. Ale vy stejně asi budete vždy chtít nastavovat práva oproti masce 0000, takže je zbytečné, podle mne, to vracet do původního stavu. Pro funkci chmod budete také potřebovat "vynulovat" masku, apod.
    27.10.2009 19:34 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Na chmod() nemá umask vliv, umask omezuje jen práva v okamžiku vytvoření souboru nebo adresáře.
    Toman avatar 29.10.2009 12:41 Toman | skóre: 29 | blog: Tomanův blog | Kostelec nad Orlicí
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    To by pak ale přeci nebylo potřeba vůbec používat umask, ale jen udělat mkdir a hned na to chmod. Nebo se pletu?
    29.10.2009 12:46 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    To zavdává na problémy s race condition.
    In Ada the typical infinite loop would normally be terminated by detonation.
    29.10.2009 16:06 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Obecně určitě ano. Ale konkrétně v tomhle případě, kdy by se práva měnila z 755 na 777, by to nevadilo.
    Toman avatar 29.10.2009 16:16 Toman | skóre: 29 | blog: Tomanův blog | Kostelec nad Orlicí
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Díky za info - já to tedy doposud, pokud to bylo třeba, používal i před chmod, zbytečně.
    29.10.2009 16:23 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Obecně při takové změně práv by to vadilo. Pokud nějaký proces bude čekat, až se objeví danej adresář, aby to do něj něco šouplo, tak bude muset zároveň čekat na ten chmod, jinak se může stát, že to „někdy“ selže při zápisu.
    In Ada the typical infinite loop would normally be terminated by detonation.
    29.10.2009 16:24 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    OK.
    24.10.2009 20:44 Zaphod | skóre: 37 | blog: zaphod_blog
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Tento príkaz pravdepodobne ovplyvňuje príkaz umask - odoberá práva vytvorenému súboru/adresáru. Bežne je nastavený na 022. Treba zmeniť na 000.

    Hodnota sa dá zmeniť v ~/.profile užívateľa www-data. Štandartná hodnota je v /etc/profile.
    24.10.2009 21:22 wswolf
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Pardon předtim jsem to nepochopil, zkusil jsem to z konzole a jde to, takže myslíte že to bude někde v PHP, nevíte kde to mám ale hledat? Dík
    25.10.2009 00:56 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Funkce se překvapivě také jmenuje umask()
    daan avatar 24.10.2009 22:54 daan | skóre: 6 | blog: Clairvoyant | Bratislava
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Ake prava ma nadradeny adresar? Pouziva dany server access control listy?

    Tieto otazky mozes pomoct zodpovedat, ak sem posles vystup z ls -l na spominany nadradeny adresar - je mozme, ze vsetky podadresare automaticky zdedia prava/vlastnikov nadradeneho.
    25.10.2009 00:04 wswolf
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Nadrazeny adresar ma prava 777 (to jsem zmenil hned na zacatku), access control list nevim co je :-( ? majitel nadrazeneho adresar je honza (tedy ja) a nadrazeny adresar patri taktez do skupiny honza, nove vytvoreny adresar ma majitele www-data a patri do skupiny www-data.
    daan avatar 25.10.2009 18:17 daan | skóre: 6 | blog: Clairvoyant | Bratislava
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    naozaj sem skus dat vystup z ls -l, to, ze je nieco "777" v niektorych pripadoch neznamena, ze je skutocne pristupny pre vsetkych. :)

    ak vo vystupe mas nieco ako

    drwxr-xr-x+

    tak sa pouziva ACL - t.j. system, ktory definuje opravnenia o nieco striktnejsie a konkretnejsie vzhladom na jednotlivych vlastnikov a skupiny.
    (je mozne nastavit aj spomina dedenie opravneni) btw, kto je hlavnym spravcom daneho serveru?
    26.10.2009 11:38 wswolf
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Ja teda vubec nechapu na co vam bude ten vypis kdyz jsem sem vse napsal, ale pokud myslite ze to pomuze tak prosim:
    /files/data$ ls -l
    drwxr-xr-x 2 www-data www-data 4096 2009-10-26 11:44 pokus
    
    Nadrazeny adresar:
    /files$ ls -l
    drwxrwxrwx 3 honza honza 4096 2009-10-26 10:42
    
    Hlavnim spravcem jsem ja.
    Ja bych rekl ze to bude nejaka ta konfigurační volba v PHP, jen nevim kde ji hledat. Ale take se mozna platu a je to uplne jinak...
    26.10.2009 11:59 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Konfigurační volby PHP bych hledal v konfiguraci PHP na vašem serveru, a jejich popis v dokumentaci PHP. V dokumentaci PHP máte také zdokumentovánu funkci mkdir(), ze které vede přímý odkaz na funkci umask(), kde je docela dlouhý popis i s příklady.
    26.10.2009 12:36 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Ja bych rekl ze to bude nejaka ta konfigurační volba v PHP, jen nevim kde ji hledat.

    Odpověď už jste ale dávno dostal. Tím, že ji budete ignorovat, nepřestane být pravdivá.

    26.10.2009 18:31 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Za vytváření čehokoliv s právy 777 bych střílel.
    In Ada the typical infinite loop would normally be terminated by detonation.
    26.10.2009 19:40 Zaphod | skóre: 37 | blog: zaphod_blog
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    V USA chodia admini ozbrojení. Asi preto vznikol parameter umask :-)
    27.10.2009 19:36 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Hm… a co 1777, to jste ochoten vzít na milost? :-)
    Bilbo avatar 27.10.2009 23:15 Bilbo | skóre: 29
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Na /tmp staci 1733

    Ne vzdy musi uzivatele videt co vsechno je tam za bordel (ok, na svem osobnim stroji tam mam 1777 :)
    Big brother is not watching you anymore. Big Brother is telling you how to live...
    28.10.2009 08:00 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Teoreticky 1733 stačí, v praxi bych asi neriskoval, že jednoho dne, až to nebudu čekat, nějaká aplikace zkolabuje kvůli tomu, že bude chtít prohlížet obsah /tmp a když to nepůjde, nastanou problémy. On by bohatě stačil i skript, který se pokusí použít wildcards.
    28.10.2009 08:37 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Sticky bit je docela příjemná věc a 1733 už zavání bezpečím; pokud ovšem neděláte soubory s právy 777. Nejjednodušší je ale udělat privátní adresář buď /home/pht/tmp nebo /tmp/pht a je vymalováno.

    Pokud se aplikace nedokáže vypořádat s absencí práv, které nepotřebuje, je na čase změnit aplikaci a nikoliv práva.

    1337 je taky dobré pokud víte co děláte. :)
    In Ada the typical infinite loop would normally be terminated by detonation.
    28.10.2009 11:27 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Nejjednodušší je ale udělat privátní adresář buď /home/pht/tmp nebo /tmp/pht a je vymalováno.

    Pro PHP ano, ale mluvil jsem spíš o linuxovém systému obecně.

    28.10.2009 14:51 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Jak se to liší?
    In Ada the typical infinite loop would normally be terminated by detonation.
    28.10.2009 17:10 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Pokud jde o jednoho uživatele a jeden program, tak není problém vyhradit mu jeho vlastní adresář pro pomocné soubory. Ale řešit tímto způsobem celý systém už tak jednoduché není.
    28.10.2009 17:32 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Ale jde to, jen se na to musí použít ty správné nástroje. Jak jsem říkal níže, existuje jich asi miliarda na sto způsobů. Začal bych u export TMP=...

    Ad Vaše reakce
    Co když půjde zrovna o důležitého démona a problém nenastane hned při spuštění, ale v nestřeženém okamžiku někdy později?
    tak se to holt odhalí jako každé jiné selhání. Důležité věci je vhodné monitorovat. A ad
    Kdyby nastavení práv na 1733 znamenalo nějaké významné posílení bezpečnosti
    máte pravdu, že obecně to nějaký podstatný zisk není.
    In Ada the typical infinite loop would normally be terminated by detonation.
    Bilbo avatar 28.10.2009 13:16 Bilbo | skóre: 29
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Stejne tak muze zkolabovat pokud si bude chtit precist treba /etc/shadow a ono to nepujde :) Osobne jsem /tmp chmodnuty na 1733 nebo 1773 uz parkrat videl a nezdalo se, ze by s tim byly v nejake aplikaci problemy. Vzhledem k tomu, ze v /tmp muze byt vselijaky bordel od ruznych programu od ruznych uzivatelu, tak se neda spolehat na to, ze tam neco bude nebo nebude.
    Big brother is not watching you anymore. Big Brother is telling you how to live...
    28.10.2009 13:44 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755

    To je ale dost podstatný rozdíl. Soubor /etc/shadow není world-readable nikde (a pokud je, je to chyba), dokonce vznikl právě proto, aby nebyl world-readable (na rozdíl od /etc/passwd, který world-readable být musí). Oproti tomu /tmp má práva 1777 na naprosté většině systémů.

    Netvrdím, že je v pořádku, když aplikace nebude fungovat, pokud jí nedovolím prohlížet obsah /tmp. Ale spoléhat na to, že na takovou dříve či později nenarazím, bych si prostě nedovolil.

    28.10.2009 14:53 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    No, vzhledem k závažnosti problému a arzenálu nástrojů na jeho nápravu bych se nebál takový problém řešit teprv až nastane ;-)
    In Ada the typical infinite loop would normally be terminated by detonation.
    28.10.2009 17:08 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: php mkdir() neumi vytvorit slozku s pravy 777 ale jen 755
    Na desktopu možná, ale na serveru bych to neriskoval. Co když půjde zrovna o důležitého démona a problém nenastane hned při spuštění, ale v nestřeženém okamžiku někdy později? Kdyby nastavení práv na 1733 znamenalo nějaké významné posílení bezpečnosti, tak by to bylo něco jiného, ale tohle není ten případ.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.