Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Linux, PHP ja tiedoston käyttöoikeudet

Sivun loppuun

pistemies [22.11.2012 10:53:00]

#

Vanha otsikko: ”Tietyn hakemisto-oikeuden salliminen”

En tiedä tämän virallista nimeä, siksi ehkä outo otsikko.

Laitoin juuri koneelleni Apache2 & PHP5 & Mysql & PhpMyadmin. Hakemistojen oikeudet ovat siinä 775. Mistä voin muuttaa asiaa niin, että php-skripti hyväksyy tuon oikeuden ja kyseiseen hakemistoon on mahdollista luoda tiedostoja ilman että suurentaa hakemiston oikeuksia? Tapahtuuko tämä php.ini tiedostossa vai missä?

Metabolix [22.11.2012 15:16:07]

#

Sinun pitää suorittaa PHP sen käyttäjän tai ryhmän tunnuksilla, joka omistaa hakemiston. Käytännössä tämä tarkoittaa yleensä, että myös Apache pitää käynnistää kyseisillä tunnuksilla. Toteutus riippuu käyttöjärjestelmästä ja siitä, haluatko saada vain yhden hakemiston toimimaan vai haluatko esimerkiksi useammat sivut eri tunnuksilla.

pistemies [22.11.2012 17:15:51]

#

Metabolix kirjoitti:

Sinun pitää suorittaa PHP sen käyttäjän tai ryhmän tunnuksilla, joka omistaa hakemiston. Käytännössä tämä tarkoittaa yleensä, että myös Apache pitää käynnistää kyseisillä tunnuksilla. Toteutus riippuu käyttöjärjestelmästä ja siitä, haluatko saada vain yhden hakemiston toimimaan vai haluatko esimerkiksi useammat sivut eri tunnuksilla.

Järjestelmä on Linux Ubuntu. Mahtaako siinä sitten Apachella olla "automattisesti" käyttäjänä root? Ainakin phpmyadminin asennus asetti siihen root-käyttäjän ihan kysymättä. Php-skriptiä avaan tietysti omilla Ubuntu-käyttäjätunnuksillani (?). Tuota sitten jossakin Apache-puolella (ja/tai php:ssa) voinee muuttaa..?

Ps. Tiedostossa envars oli mm. tällaisia muuttujia:

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
export APACHE_PID_FILE=/var/run/apache2$SUFFIX.pid
export APACHE_RUN_DIR=/var/run/apache2$SUFFIX

Tiedostossa /var/run/apache2.pid oli tälläinen teksti:

2321

Sen sijaan hakemisto /var/run/apache2 on tyhjä.
Olenko ihan pusikossa?

Ps2: Tuon perustella olen oikeilla jälijllä:
http://codeigniter.com/forums/viewthread/188480/#890817

Kannnattisiko tuota kokeilla?

pistemies [23.11.2012 12:42:22]

#

Testattu o. Eipä toiminut tuo linkin takana esitelty asetus minulla.

pistemies [25.11.2012 21:57:28]

#

No niin. Olempa tässä hiukan opetellu eri hommia ja asensin Nginx-serverin & PHP-fpm:n .
Jollaki taitaa tuo php-fastcgi olla asennettuna. Tartteeko siinä php.iniin tehdä mitään muutoksia? En löytänyt siitä ohjeita Ubuntulle. Muutenkin koko hommasta ei taida olla vielä minkäänlaista suomenkielistä opasta. No onhan tuo php-fpm vielä aika nuori tapaus.
Ja tässäkin on tuo palvelinpuolen säätöhomma, ettää miten saan php:n hyväksymään hakemiston arvoksi 775? Monessa php-ohjeessa tosin neuvotaan että hakemiston oikeudet tulisi maksimissaan olla noin suuret. Mutta miten sen mahdollisuus käytännössä palvelinpuolella hoidetaan?

Ps. Pystyykö jollakin php-skriptillä testaamaan, että onko tuo fastcgi-laajennus asentunut?

Metabolix [26.11.2012 17:34:39]

#

Jos oikeasti opettelisit vähän perusasioita, ei tarvitsisi höpöttää PHP:stä ja hyväksymisestä vaan voisit suoraan kysyä jotain järkevää. PHP ei millään tavalla tiedoston oikeuksien perusteella hyväksy tiedostoja tai kieltäydy niistä, vaan oikeuksien valvonta on käyttöjärjestelmän ominaisuus. Tiedoston oikeudet – varsinkaan niin liberaalit kuin 775 – eivät usein kerro mitään olennaista, vaan yleensä on kysymys siitä, kuka tiedoston (hakemiston) omistaa ja kuka sitä yrittää käyttää.

Tässä tapauksessa tiedoston tai hakemiston omistaa esimerkiksi pistemies:pistemies (käyttäjä:ryhmä; selviää komennolla id) ja sitä yrittää muokata www-data:www-data. Ratkaisu on siis muuttaa joko tiedoston omistajaa (komennolla chown) tai palvelimen käyttäjää (palvelimen asetuksista). Järkevä kysymys sitten onkin, mitä asetuksia tarkalleen kannattaa muuttaa.

Mielekkäitä vaihtoehtoja:

Arveluttavia vaihtoehtoja:

Muista muutosten jälkeen kirjautua uudestaan, jos muutit oman käyttäjäsi ryhmiä, tai käynnistää palvelinohjelma uudestaan, jos muutit sen asetuksia.

pistemies kirjoitti:

Testattu o. Eipä toiminut tuo linkin takana esitelty asetus minulla.

Varmaan tajusit myös vaihtaa siihen omat tunnuksesi, vai kokeilitko tunnuksella eoin, jota koneellasi ei luultavasti ole?

pistemies [26.11.2012 22:30:00]

#

Metabolix kirjoitti:

Jos oikeasti opettelisit vähän perusasioita, ei tarvitsisi höpöttää PHP:stä ja hyväksymisestä vaan voisit suoraan kysyä jotain järkevää. PHP ei millään tavalla tiedoston oikeuksien perusteella hyväksy tiedostoja tai kieltäydy niistä, vaan oikeuksien valvonta on käyttöjärjestelmän ominaisuus.

Mikä viestissäni ei ollut järkevää? Nimenomaan käyttöjärjestelmän asetuksia (ja vähän sitäkin, miten nuo muutokset tehdään) kyselin kuten viestistäni voi huomata.

Kiitos kuitenkin kun vaivauduit vastaamaan. Tutkin, mikä noista vaihdoehdoista vois olla kätevin. Mutta pysyttelen Nginx-palvelimessa, se on tosi nopea ja myös monien mielestä turvallisempi kuin Apache.

Metabolix [26.11.2012 22:51:10]

#

Viestissäsi ei ollut järkevää kohta "miten saan php:n hyväksymään hakemiston arvoksi 775". Selitin juuri syitä tähän, ja mielestäni tärkein syy on, että päätös ei riipu PHP:stä eikä siis voi sanoa, että PHP:n pitäisi "hyväksyä" jotain.

pistemies [27.11.2012 11:51:12]

#

Metabolix kirjoitti:

Viestissäsi ei ollut järkevää kohta "miten saan php:n hyväksymään hakemiston arvoksi 775". Selitin juuri syitä tähän, ja mielestäni tärkein syy on, että päätös ei riipu PHP:stä eikä siis voi sanoa, että PHP:n pitäisi "hyväksyä" jotain.

Takerrut liikaa sanojen kirjaimelliseen tulkintoihin.
Käytännössähän on juuri noin että ilmoitus 'permission denied' tulee esim. sillon kun php:lla yrittää luoda tiedoston 0755-oikeuksiseen hakemistoon.
Minusta php:n mainitseminen tuossa on ihan luonnollista, koska php tuon errorin pukkaa esille.
Voihan tuon tietysti hienomminkin sanoa, "php-skriptin omistajalla ei ole riittäviä oikeuksia luoda tiedostoja omistamaansa hakemistoon muuten kuin nostamalla hakemiston chmod arvoon 777." Minusta tuo on turhan monisanaista ja turhan paljon lähentelee "kapulakieltä".

Grez [27.11.2012 12:55:34]

#

Voisihan siinä sanoa mitä tarkoittaa ilman kapulakieltäkin.

Esim: Miten saa PHP:llä kirjoitettua hakemistoon, jonka käyttöoikeudet on 775?

Mielestäni alkuperäinen kysymyksesi ei ole perusteltu hyväksi sillä, että pystyt keksimään vielä huonomman tavan kysyä asia. Hyvästä kysymyksestä ymmärtää mitä kysytään ja se on helppolukuinen.

qeijo [27.11.2012 17:09:33]

#

yawn.

The Alchemist [27.11.2012 21:01:23]

#

"Chmod" ei ole mikään ominaisuus vaan komento. Se on lyhenne sanaparista "change mode" ja tarkoittaa tiedoston käyttöoikeuksien muuttamista.

pistemies [28.11.2012 00:03:38]

#

The Alchemist kirjoitti:

"Chmod" ei ole mikään ominaisuus vaan komento. Se on lyhenne sanaparista "change mode" ja tarkoittaa tiedoston käyttöoikeuksien muuttamista.

Kylläpä täällä riittää viisaita saivartelijoita.

Metabolix [28.11.2012 00:26:07]

#

Hieman koomista on, että kun muotoilit kysymyksen "hienommin", siihen tuli koko joukko uusia virheitä ja sen merkitys muuttui täysin. Nyt sekoitat skriptin omistajan (itsesi) ja skriptin suorittajan eli palvelimen käynnistämän PHP-tulkin (käyttäjän www-data) ja väität, että ensiksi mainitulla ei olisi riittäviä oikeuksia, vaikka juuri hänellä on varmasti kaikki oikeudet tiedostoihin vaikkei hän niitä edes tarvitse (kysymyksen näkökulmasta).

Ehkäpä tämän saivartelun keskeinen sanoma on, että sinun kannattaisi oikeasti sisäistää perusasiat tiedostoista, prosesseista, käyttäjistä ja oikeuksista, jos aiot ylläpitää jonkinlaista palvelinta edes harrastuksena. Muuten voit törmätä toistuvasti tällaisiin ongelmiin tai aiheuttaa ikäviä tietoturva-aukkoja. Oikeastaan nämä asiat kuuluvat minusta kaikkien niiden yleissivistykseen, jotka haluavat tietää Linuxista muuta kuin peruskäyttäjän pakollisen minimimäärän.

Touho [28.11.2012 02:16:27]

#

Minun mielestä palvelimen pitäminen harrastuksena on oiva tilaisuus oppia uutta esimerkiksi käyttöoikeuksista. Ja oleellista on ratkaista alkuperäinen ongelma eikä saivarrella muiden osaamattomuudella.

Metabolix esitti edellisessä viestissään hyvin ongelmaksi sen, että oikeuksia tiedostojen lukuun tarvitsee skriptin suorittaja www-data eikä skriptin omistaja.

Ongelmat toki ratkeavat helpommin, jos lähtötiedon ovat tarkasti selitettyjä.

pistemies [28.11.2012 10:26:26]

#

Touho kirjoitti:

Minun mielestä palvelimen pitäminen harrastuksena on oiva tilaisuus oppia uutta esimerkiksi käyttöoikeuksista. Ja oleellista on ratkaista alkuperäinen ongelma eikä saivarrella muiden osaamattomuudella.

Juu, ongelman olen saanut ratkaistua.

Metabolix kirjoitti:

Hieman koomista on, että kun muotoilit kysymyksen "hienommin", siihen tuli koko joukko uusia virheitä ja sen merkitys muuttui täysin. Nyt sekoitat skriptin omistajan (itsesi) ja skriptin suorittajan eli palvelimen käynnistämän PHP-tulkin (käyttäjän www-data) ja väität, että ensiksi mainitulla ei olisi riittäviä oikeuksia, vaikka juuri hänellä on varmasti kaikki oikeudet tiedostoihin vaikkei hän niitä edes tarvitse (kysymyksen näkökulmasta).

Ehkäpä tämän saivartelun keskeinen sanoma on, että sinun kannattaisi oikeasti sisäistää perusasiat tiedostoista, prosesseista, käyttäjistä ja oikeuksista, jos aiot ylläpitää jonkinlaista palvelinta edes harrastuksena. Muuten voit törmätä toistuvasti tällaisiin ongelmiin tai aiheuttaa ikäviä tietoturva-aukkoja. Oikeastaan nämä asiat kuuluvat minusta kaikkien niiden yleissivistykseen, jotka haluavat tietää Linuxista muuta kuin peruskäyttäjän pakollisen minimimäärän.

Vaikka en eri toiminnoille ihan täsmällistä oikeaa sanamuotoa hoksaa kertoa niin tuskimpa se teikäläisissä aiheuttaa väärinkäsityksiä kysymyksen suhteen. Pikemmin se näyttää aiheuttavan sen, mistä tämä foorumi on jo useita vuosia kärsinyt: kykenemättömyyden asialliseen keskusteluun ja takertumisen toissijaisiin asioihin, opastusta kyselevän keskustelijan 'kummalliseen puhetapaan'.

qeijo [28.11.2012 13:00:17]

#

pistemies kirjoitti:

Vaikka en eri toiminnoille ihan täsmällistä oikeaa sanamuotoa hoksaa kertoa niin tuskimpa se teikäläisissä aiheuttaa väärinkäsityksiä kysymyksen suhteen. Pikemmin se näyttää aiheuttavan sen, mistä tämä foorumi on jo useita vuosia kärsinyt: kykenemättömyyden asialliseen keskusteluun ja takertumisen toissijaisiin asioihin, opastusta kyselevän keskustelijan 'kummalliseen puhetapaan'.

Olen miltei täysin samaa mieltä.

Aika usein keskustelu menee näin:

Kysymyksen esittäjä: (lähtökohtaisesti väärässä ja vähän hölmö):
Miten minä saan.... [kysymys]

admin: (lähtökohtaisesti aina oikeassa ja kaiken tietävä):
Etkä muka tiedä, et ole edes hakennut tietoa, miksi kysyt noin tyhmästi, katso googlesta)

joku muu: (yleensä joku viisasteleva, adminia nuoleskeleva asiantuntija)
Onse kyllä jukolauta kun ei edes osannut hakea tietoa, tai siis.. ei ymmärrä tuota asiaa, tai siis.. väärin kysyi tjn. Pyh.

admin: (lähtökohtaisesti aina oikeassa ja kaiken tietävä):
No sehän on tietenkin näin. daah.

Kysymyksen esittäjä: (lähtökohtaisesti väärässä ja vähän hölmö):
Anteex ku kysyin..

The Alchemist kirjoitti:

"Chmod" ei ole mikään ominaisuus vaan komento. Se on lyhenne sanaparista "change mode" ja tarkoittaa tiedoston käyttöoikeuksien muuttamista.

Niin saatana! Ekkö tajua!

pistemies [28.11.2012 16:46:36]

#

Mutta sivuseikat sikseen ;)

Olempa sitten värkänny viime päivinä tallaisen oppaan:

http://www.pm-netti.com/index.php?id=oppaat&as=nginx_server

The Alchemist [28.11.2012 22:34:44]

#

Qeijo ei nyt ainakaan tajunnut. Itse en toisaalta tajua sitä, miksei päivänselviä virheitä pitäisi korjata. Jos ihmiset eivät osaa keskustella käyttäen standardia sanastoa vaan keksivät mitä kummallisimpia ilmaisuita itse, niin miten me sitten voimme koskaan ymmärtää toisiamme? Juuri tämän takia jouduttiin jo aiemmin käymään useamman viestiparin pituinen vuoropuhelu.

pistemies [28.11.2012 23:11:16]

#

The Alchemist kirjoitti:

Jos ihmiset eivät osaa keskustella käyttäen standardia sanastoa vaan keksivät mitä kummallisimpia ilmaisuita itse

Mutta kun meikäläisellä ainakaan ei oo tiedossa jokaiseen tilanteeseen liittyvää standardia sanastoa. Ja jos tiedossa onkin niin ei niitä asiaan liittyviä standarneja sanoja muista juuri silloin kun on viestiä laittamassa.
Mutta kyllä tässäkin viestiketjussa varmaan olen asiani kertonut ymmärrettävästi ilman tietotekniikka-sanastoakin. Pitää olla jo liian "ohutpäinen" jos ei jotakin viesteistäni tajunnut.

Grez [28.11.2012 23:26:01]

#

pistemies kirjoitti:

Mutta kun meikäläisellä ainakaan ei oo tiedossa jokaiseen tilanteeseen liittyvää standardia sanastoa.

Niin ja jos niitä ei kukaan korjaa, niin sitten sinulla ei ole sitä tiedossa huomennakaan.

Eihän tässä ole tarkoitus haukkua sinua tyhmäksi, vaan opettaa ja opastaa.

Tosin valitettavan usein kuivakkaasta oikaisusta mennään "puolustukannalle", eli aletaan perustella miksi se väärä termi on kuitenkin ihan hyvä. Silloin ei osata asennoitua että "hienoa, opinpa taas uutta".

qeijo [29.11.2012 08:00:37]

#

The Alchemist kirjoitti:

..ihmiset eivät osaa keskustella käyttäen standardia sanastoa vaan keksivät mitä kummallisimpia ilmaisuita..

Vielä parempi olisi jos kysyjä tietäisi käytettävän standardin lisäski, valmiiksi vastauksen kysymykseen.

pistemies [29.11.2012 11:55:47]

#

Grez kirjoitti:

pistemies kirjoitti:

Mutta kun meikäläisellä ainakaan ei oo tiedossa jokaiseen tilanteeseen liittyvää standardia sanastoa.

Niin ja jos niitä ei kukaan korjaa, niin sitten sinulla ei ole sitä tiedossa huomennakaan.

Välttämättä se "oikaisu" ei ole kovinkaan tervetullut silloin kun se "oikaisu" annetaan vastauksena (tai se on ainoa vastaus) esitettyyn ongelmaan joka on toki paljon tärkeämpi kuin hiusten halkominen virallisista termien puutteesta.

Esimerkkinä tuossa käyttämäni oma arkikielinen lyhenne "chmod arvo" tai "chmod-arvo". Siinä nyt ei ole kyse tiedon puutteesta, ihan se on oma kansankielinen lyhenteeni sanoista "chmod-komennolla aikaansaatu käyttöoikeus". Ihmettelen miksi tuollainen kansankieli koetaan täällä kiusallisena, varsinkin kun lauseen tekstiyhteydestä selviää mistä siinä on kysymys.

The Alchemist [29.11.2012 12:05:17]

#

qeijo kirjoitti:

The Alchemist kirjoitti:

..ihmiset eivät osaa keskustella käyttäen standardia sanastoa vaan keksivät mitä kummallisimpia ilmaisuita..

Vielä parempi olisi jos kysyjä tietäisi käytettävän standardin lisäski, valmiiksi vastauksen kysymykseen.

Vaihtoehtoja on kaksi:
- Kirjoittaja ei osaa ammattisanastoa mutta luulee tai toivoo käyttävänsä oikeita termejä.
- Kirjoittaja ei osaa ammattisanastoa ja tarkoituksellisesti keksii omia ilmaisuitaan, koska haluaa yrittää kuulostaa edes vähän osaavammalta.

Ensimmäisessä tapauksessa kirjoittajaa ei voi juurikaan syyttää, mutta tuo toinen tapaus on lähinnä vittuilua kanssakeskustelijoille. Asiat voi ilmaista yksinkertaisestikin käyttämättä mitään ihmeellistä slangia, jos ammattisanastoa ei osaa.

Joka tapauksessa ainoat hyödyttömät viestit ovat niitä, joissa vain nillitetään siitä, miten joku korjasi oikean virheen.

Grez [29.11.2012 16:32:57]

#

pistemies kirjoitti:

Välttämättä se "oikaisu" ei ole kovinkaan tervetullut silloin kun se "oikaisu" annetaan vastauksena (tai se on ainoa vastaus) esitettyyn ongelmaan joka on toki paljon tärkeämpi kuin hiusten halkominen virallisista termien puutteesta.

Olin siinä käsityksessä että tuo Alchemistin oikaisu tuli siinä vaiheessa kun ongelmat oli jo ratkaistu.

Myöskin Metabolix nähdäkseni myös kertoi vastauksia sen lisäksi, että kommentoi kysymystä.

Jos tosiaan on niin, että asian tiimoilta on vielä avoimia kysymyksiä, niin kerro ihmeessä mitkä asiat vielä kaipaa vastausta.

pistemies [29.11.2012 17:08:53]

#

Grez kirjoitti:

Olin siinä käsityksessä että tuo Alchemistin oikaisu tuli siinä vaiheessa kun ongelmat oli jo ratkaistu.

Tuo A:n kommentti ei varsinaisesti ollut "oikaisu" vaan kommentti pelkästään sanasta "chmod". Kyllä tuon mitä hän siitä kertoi, tietää jo 10-vuotiaat jotka php:ta opiskelevat.
Viesteissäni en ole käyttänyt sanaa chmod yksinään, vaan sanaparia "chmod arvo".

The Alchemist [30.11.2012 08:59:06]

#

Termi "chmod-arvo" antaa lukijan olettaa, että kirjoittaja luulee chmodin olevan jokin tiedostojärjestelmän tai yksittäisten tiedostojen ominaisuus. Se viestii suoraan siitä, ettei kirjoittaja ymmärrä, mikä "chmod" on, eikä välttämättä ymmärrä tarkasti tiedostojen käyttöoikeuksistakaan. Jokin looginen syy täytyy olla sille, että päätettiin käyttää kotitekoista, merkityksetöntä / sekavaa ilmaisua "chmod-arvo", vaikka oikea termi olisi ollut "käyttöoikeudet".

pistemies [30.11.2012 10:00:46]

#

The Alchemist kirjoitti:

Termi "chmod-arvo" antaa lukijan olettaa, että kirjoittaja luulee chmodin olevan jokin tiedostojärjestelmän tai yksittäisten tiedostojen ominaisuus. Se viestii suoraan siitä, ettei kirjoittaja ymmärrä, mikä "chmod" on, eikä välttämättä ymmärrä tarkasti tiedostojen käyttöoikeuksistakaan. .

Jotta voisi tuon ilmaisun tarkoittavan sitä ettei henkilö ymmärrä mitä "chmod"-tarkoittaa pitää olla jo aika lailla silmälaput silmillä. Koska suunilleen jokainen joka alkaa opetella php-ohjelmointia, haluaa jo suunilleen 1. viikon aikana oppia käyttämään tiedostoon tallentamista hyväksi niin on heti käytettävä chmod-komentoa muuttakseen tiedoston tai hakemiston oikeuksia. Chmod kuuluu täydellisesti php-ohjelmoinnin alkeisiin.
Olet varmaan suunnilleen selvillä, että olen ollut tällä foorumilla useita vuosia ja silti sinulla tuon yhden lauseen perusteella on sellainen käsitys että minä en ymmärrä php-ohjelmoinnin alkeisasioita? Käsittämätöntä tulkintaa.

The Alchemist kirjoitti:

Jokin looginen syy täytyy olla sille, että päätettiin käyttää kotitekoista, merkityksetöntä / sekavaa ilmaisua "chmod-arvo", vaikka oikea termi olisi ollut "käyttöoikeudet"

Tuollaisen käyttöön ei tarvita mitään "päätöstä". Minulle tuollaisten ilmaisujen yksinkertaistaminen on useinkin tyypillistä ja ne ilmaisut tulee ihan miettimättä. Tuo sana "käyttöoikeudet" ei kuvaa ihan täysin sitä mitä ilmaisu "chmod-arvo" pitää sisällään. Tuohon viimeksi mainittuun sisältyy se piirre että käyttöoikeuksia on jouduttu muuttamaan chmod-komennolla jotta homma toimisi.
Valitan, että tämä minun kansankieleni voi vähän sekoittaa pakkaa. Mutta kyllä minusta ohjelmoinnissakin pitäisi jonkinlainen vapaus sallia kansanomaiselle kielenkäytölle. Monet teikäläisistä ilmeisesti arkikielessä käyttää jonkilaista slangi-sanastoa (jota minä en käytä lainkaan), niin ei kai ohjelmointi ole niin pyhä alue ettei siinä voi olla jotain yksinkertaistettuja lyhenteitä?

Lebe80 [30.11.2012 10:19:08]

#

pistemies kirjoitti:

Jotta voisi tuon ilmaisun tarkoittavan sitä ettei henkilö ymmärrä mitä "chmod"-tarkoittaa pitää olla jo aika lailla silmälaput silmillä. Koska suunilleen jokainen joka alkaa opetella php-ohjelmointia, haluaa jo suunilleen 1. viikon aikana oppia käyttämään tiedostoon tallentamista hyväksi niin on heti käytettävä chmod-komentoa muuttakseen tiedoston tai hakemiston oikeuksia. Chmod kuuluu täydellisesti php-ohjelmoinnin alkeisiin.

Mikäköhän siinä on, ettei mun ole tarvinnut muuten "koskaan" muuntaa oikeuksia php:lla, eikös ne juuri periydy suoraan siitä hakemistosta, jossa tiedostoja käpistellään?

The Alchemist [30.11.2012 10:35:57]

#

Käyttöoikeudet määräytyvät (käyttäjäkohtaisen) umaskin mukaan, joka on oletuksena kai useimmiten 022, mikä tarkoittaa käytännössä sitä, että luvusta 777 vähennetään 22, eli uuden tiedoston oikeudet asettuvat arvoon 755. Oikeasti kyse on bittien maskaamisesta (022 := bitit 1 ja 4 "suljetaan" eli niiden arvoksi tulee 0), ja luvut 777, 755 ja 22 ovat oktaalilukuja. Tiedoston omistava käyttäjä ja ryhmä määräytyvät tiedoston luoneen prosessin omistaneen käyttäjän perusteella.

Periaatteessa php:n luomien tiedostojen oikeuksia ei tarvitse chmod()-funktiolla muokkailla. Lähinnä tulee aloittelijoiden kanssa mieleen se tapaus, että he haluavat jälkikäteen muokata php:n luomia tiedostoja omalla tekstieditorillaan, mutta se ei onnistu, koska näihin tiedostoihin ei oletuksena ole riittävästi oikeuksia.

Lisäys:

pistemies kirjoitti:

Monet teikäläisistä ilmeisesti arkikielessä käyttää jonkilaista slangi-sanastoa (jota minä en käytä lainkaan), niin ei kai ohjelmointi ole niin pyhä alue ettei siinä voi olla jotain yksinkertaistettuja lyhenteitä?

Kyse ei ole yksinkertaistuksesta eikä varsinkaan lyhenteestä. Sanan tai ilmaisun lyhentäminen ei voi muuttaa sen merkitystä toiseksi. Käyttöoikeuksien kutsuminen chmodiksi on yhtä suurin piirtein holtitonta kuin mp3-soittimen kutsuminen mp3:ksi tai auton kutsuminen liukuhihnaksi, koska autot valmistetaan tehtaissa liukuhihnoilla.

Tai vastaava keissi ohjelmoinnin piiristä: kuin kutsuisit tekstiä "fwrite-arvoksi", koska kirjoitat sen (php:llä tai c:llä) tiedostoon käyttäen fwrite-nimistä funktiota.

pistemies [30.11.2012 12:29:27]

#

Lebe80 kirjoitti:

Mikäköhän siinä on, ettei mun ole tarvinnut muuten "koskaan" muuntaa oikeuksia php:lla, eikös ne juuri periydy suoraan siitä hakemistosta, jossa tiedostoja käpistellään?

Taitanee johtua käytössä olevasta verkkopalvelimesta.
Vuosia sitten palvelimella jota käytin, piti hakemiston käyttöoikeus nostaa lukemiin 777 (hakemistojen oikeus oli oletuksena 755), jos halusi että siellä pystyi php:lla jotain muokkaamaan tai luomaan tiedostoja.
Toiseksi mkdir-funktiolla ei kaikilla palvelimilla voi luoda hakemistoja, niitä joutuu ftp:lla siirtämään kotikoneelta ja niiden ominaisuuksia joutuu muuttamaan.

Metabolix [30.11.2012 15:06:31]

#

Hyvien kysymysten esittämistä pitäisi selvästi opettaa jo koulussa, koska konsultointi on nykyään monella alalla tärkeää ja sen tehokkuus riippuu olennaisesti kysymyksen laadusta. Monelle kunnollisen kysymyksen laatiminen tuntuu olevan ihan mahdotonta.

Hyvässä kysymyksessä selitetään tilanne selvästi ja siten, että siitä helposti näkee, mitkä asiat ovat totta ja mitkä ovat omia tulkintoja tai arvauksia. Sitten muotoillaan kohdennettu kysymys.

Esimerkki: "Asensin Ubuntuun Apache2-palvelimen. PHP:n fopen-funktio antaa ilmoituksen 'permission denied'. Hakemiston oikeudet ovat 775 eli mielestäni riittävät. Mistä virheilmoitus johtuu? Onko PHP:ssä jokin asetus, jonka takia se hylkää arvon 775? En halua käyttää arvoa 777."

Kas näin. Selvän kysymyksen laatimiseen ei tarvittu yhtään hienoa sanaa eikä yhtään enempää tietoa aiheesta kuin alunperinkään. Oikeastaan kävi päinvastoin: kysymyksestä tuli selvempi, kun siitä karsittiin turhat arvaukset, tulkinnat ja pohdinnat.

Alkuperäinen kysymys oli onneksi jotenkuten ymmärrettävä, mutta ilmaus "php-skripti hyväksyy" tuo ainakin minulle ensiksi mieleen, että kyseessä olisi juuri PHP-skriptissä tehtävä tarkistus: if ($tila != 0777) die("Ei kelpaa!"). Silloin kehottaisin etsimään koodista kyseisen kohdan ja muuttamaan sitä. Ystävällisesti tulkitsin asian niin pitkälle, että tuollainen tarkistus olisi outo ja epätodennäköinen eikä kysymyksessä edes mainittu mitään kopioitua koodia, joten kyseessä on ehkä sittenkin permission denied -virhe. Jos kysymyksessä olisi kerrottu selvästi todellinen tilanne (PHP:n virheilmoitus), mitään epäselvyyttä ei olisi ollut ja outo ilmauskin olisi paremmin erottunut tulkinnaksi eikä tosiasiaksi.

Jos taas olisit heti kysynyt tuon kapulakielisen versiosi, olisin luultavasti käsittänyt (aivan rehellisesti enkä mitenkään kiusallani) tilanteen kirjaimellisesti siten, kuin kysymyksessä lukee, ja antanut siis suunnilleen päinvastaisen vastauksen. Ehkä olisin silti aavistellut, että kysymys on väärä, ja vastannut lyhyesti myös oikeaan kysymykseen.

pistemies kirjoitti:

Chmod kuuluu täydellisesti php-ohjelmoinnin alkeisiin.

Sinne se ei todellakaan kuulu, koska asia ei liity PHP:hen oikeastaan millään tavalla. Itse en muista käyttäneeni chmod-funktiota PHP:llä tai muullakaan kielellä juuri koskaan ja vastaavaa komentoriviohjelmaakin ani harvoin nettisivujen yhteydessä. Se, että lukee tiedoston moodin PHP:hen liittyväksi aiheeksi, on minusta paljon pahempi asia kuin ilmaus "chmod-arvo", joka on sentään helppo ymmärtää.

Tämäkin ongelmatilanne vihjaa, että vaikka tiedoston moodin muuttaminen sokkona mielestäsi kuuluu PHP:n alkeisiin, selvästikään sen ymmärtäminen ei kuulu, kun et itsekään ollut tietoinen siitä, miten käyttäjät ja ryhmät liittyvät asiaan.

pistemies kirjoitti:

[Ilmaisuun "chmod-arvo"] sisältyy se piirre että käyttöoikeuksia on jouduttu muuttamaan chmod-komennolla jotta homma toimisi.

Minusta taas "chmod-arvo" on selvä lyhenne ilmaisusta "arvo, jota voi muuttaa chmod-komennolla ja jonka oikeaa nimeä en tiedä". Minusta siihen ei liity mitään muuta erityistä piirrettä, mikä ehkä johtuu siitä ymmärryksestä, että jokaiseen tiedostoon liittyy tämä tieto silloinkin, kun sitä ei ole erikseen chmod-komennolla asetettu.

Yleensä on järkevää joko käyttää selviä sanoja tutuissa merkityksissä tai selittää kunnolla, mitä jollain sanalla tarkoittaa.

The Alchemist [30.11.2012 20:04:29]

#

pistemies kirjoitti:

[Ilmaisuun "chmod-arvo"] sisältyy se piirre että käyttöoikeuksia on jouduttu muuttamaan chmod-komennolla jotta homma toimisi.

Tätä en aluksi huomannutkaan. Juuri tämä mainitsemasi asia on päällimmäisin syy siihen, miksi "chmod-arvo" on minusta terminä erityisen sekava kuten näköjään Metabolixinkin mielestä. Annat ymmärtää, että chmod-työkalulla (tai -funktiolla) asetetut oikeudet olisivat jotenkin erilaiset tai jopa kokonaan eri asia kuin käyttöoikeudet yleisesti. Toisin sanoen liität käyttöoikeuksien käsitteeseen täysin redundantin lisän, eli tämän chmod-kutsun, vaikkei sillä, miten oikeudet on asetettu, ole mitään vaikutusta itse oikeuksiin. Ainoa merkityksellinen asia on se, millaiset oikeudet tiedostolle on asetettu, käytetty työkalu ei liity asiaan mitenkään.

pistemies [30.11.2012 22:01:03]

#

Metabolix kirjoitti:

Kas näin.

Niimpä niin. Hohoijaa.

The Alchemist kirjoitti:

Tätä en aluksi huomannutkaan. Juuri tämä mainitsemasi asia on päällimmäisin syy siihen, miksi "chmod-arvo" on minusta terminä erityisen sekava kuten näköjään Metabolixinkin mielestä.

Joo. Lupaan etten enää mainitse teille tuota sanaa. Ja yritän löytää jotain virallista kieliasua :)


Sivun alkuun

Vastaus

Aihe on lukittu, joten siihen ei voi vastata.

Tietoa sivustosta