Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: chmodit

Sivun loppuun

Simppe [25.11.2003 18:02:18]

#

Olen jo pitemmän aikaa etsiskellyt vastausta siihen kuinka saisin muutettua jo olemassa olevan tekstitiedoston oikeuksia niin että scripti pääsisi lukemaan sieltä käyttäjätietoja ja lukemisen jälkeen scripti muuttaisi chmodit niin että tiedostoa ei voisi enää lukea. Eli siis ainoastaan scripti pääsisi filuun käsiksi.

Onko tähän olemassa jokin funktio? Ilmeisesti on sen verran sain php:n manuaalista selvää.

makeuu [25.11.2003 19:19:53]

#

tuotanoin vedän nopeasti päästä:

{
$tiedosto = file("teksti.txt");
chmod = ("$tiedosto", 0777";
}
{
Se scripti
{
chmod = ("$tiedosto", 0444);
}

En siis ole vastuussa koodista! XD

Simppe [25.11.2003 20:51:04]

#

Ei tuo ainakaan noin suoraan toiminu mutta vaikka tein syntaksin mukaan oikein se ei suostu chmodeja muuttamaan tulee virheilmotusta kokoaika.

"Warning: chmod() [function.chmod]: Operation not permitted..."

Mistähän tuo mahtaisi viestiä?

makeuu [25.11.2003 20:55:50]

#

sitten en osaa vastata... kyllä sen voi yhesti chmodata, mutta tuo seuraava ei varmaan onnistu... voitsko listata scriptin tänne?

Simppe [25.11.2003 20:59:29]

#

<?php session_start();
$kayttajat = file("kayttajat.txt");
chmod ("kayttajat.txt", "0777");
$rivim = count($kayttajat);
$id = $_POST['tunnus'];
$password = $_POST['passu'];

for ($i = 0; $i < $rivim; $i++) {
   $ktiedot = explode("|", $kayttajat[$i], 2);
	 $user = $ktiedot[0];
	 $pass = $ktiedot[1];

	 if ($id == $user || $password == $pass){
	 	$_SESSION['sessio'] = true;
		include("top.php");
		echo "Olet nyt kirjautunut!";
		include("bottom.htm");
	 }else { $_SESSION['sessio'] = false;
	 	include("top.php");
	 	echo "Tunnus tai salasana ei täsmää.";
	 include("bottom.htm");
	 }
}
chmod ("kayttajat.txt", "0444");?>

Tässähän tämä

ajv [25.11.2003 21:11:55]

#

En oo varma, mutta otappa lainausmerkit pois oikeuksista. Ja siirrät file-funktion suoritettavaksi vasta chmodauksen jälkeen.
Siis

<?php
chmod("kayttajat.txt", 0777);
$kayttajat = file("kayttajat.txt");
?>

Ite oon ainakin tottunu käyttään chmod-funktiota tällälailla.

Simppe [25.11.2003 21:13:51]

#

Sitäkin on tullu kokeiltua jo se ei jotenkii vaa suostu muutamaan niitä mitenkää. Monenlaista vaihtoehtoo on tullu kokeiltua.

makeuu [25.11.2003 21:27:41]

#

<?php session_start();
{
$kayttajat = file("kayttajat.txt");
chmod ("kayttajat.txt", 0777);
}
$rivim = count($kayttajat);
$id = $_POST['tunnus'];
$password = $_POST['passu'];

for ($i = 0; $i < $rivim; $i++) {
   $ktiedot = explode("|", $kayttajat[$i], 2);
	 $user = $ktiedot[0];
	 $pass = $ktiedot[1];

	 if ($id == $user || $password == $pass){
	 	$_SESSION['sessio'] = true;
		include("top.php");
		echo "Olet nyt kirjautunut!";
		include("bottom.htm");
	 }else { $_SESSION['sessio'] = false;
	 	include("top.php");
	 	echo "Tunnus tai salasana ei täsmää.";
	 include("bottom.htm");
	 }
}
{
chmod ("kayttajat.txt", 0444);
}
?>

kokeile näin

Simppe [25.11.2003 21:32:19]

#

:) ei auta tuokaan. Samaa valittaa yhä. Mutta on tietenkii helpompiki tapa jos joku vaan tietää semmosen chmod arvon joka antaa scriptin lukea tiedostoa mutta ei päästä ulkopuolisia käyttäjiä käsiks tiedostoon ni se ratkasee ongelman, aattelin itekkin kokeilla eri vaihtoehtoja.

Puistokemisti [26.11.2003 16:36:07]

#

Toimisiko tämä:

<?php session_start();
$kayttajat = file("kayttajat.txt");
chown ("kayttajat.txt", nobody);
chmod ("kayttajat.txt", 0777);

$rivim = count($kayttajat);
$id = $_POST['tunnus'];
$password = $_POST['passu'];

for ($i = 0; $i < $rivim; $i++) {
   $ktiedot = explode("|", $kayttajat[$i], 2);
     $user = $ktiedot[0];
     $pass = $ktiedot[1];

     if ($id == $user || $password == $pass){
         $_SESSION['sessio'] = true;
        include("top.php");
        echo "Olet nyt kirjautunut!";
        include("bottom.htm");
     }else { $_SESSION['sessio'] = false;
         include("top.php");
         echo "Tunnus tai salasana ei täsmää.";
     include("bottom.htm");
     }
}
chmod ("kayttajat.txt", 0444);
?>

Simppe [26.11.2003 18:46:02]

#

Ei tunnu toimivan valittaa yhä:

Warning: chmod() [function.chmod]: Operation not permitted...

Alkaa loppua usko mutta luulis että se jotenki pitäs toimia en sitten tiiä... Kaikenlaista on kokeiltu

Puistokemisti [26.11.2003 19:09:55]

#

Lue seuraavat threadit läpi:

http://forums.devshed.com/archive/5/2003/8/3/76888
http://forums.devshed.com/showthread.php?s=&threadid=76052

Tarvittaessa siis muutat kansion/tiedoston oikeudet ennen kuin käytät niitä scriptissä (esim. jollain ftp-ohjelmalla).

tomaattigeeni [26.11.2003 20:00:47]

#

!hokshoks! httpd:llä ei normaalisti ole oikeuksia chmodailla käyttäjän tiedostoja ;)

leftover [26.11.2003 20:29:22]

#

Eikö kaikista helpoin olisi suojata kayttajat.txt .htaccessilla ja kiertää php:ssä salasanasuojaus hakemalla data todellisesta polusta (relatiivinen polku: http://www.domain.com/suojattu/kayttajat.txt ja todellinen polku var/www/public_html/suojattu/kayttajat.txt)?

Simppe [26.11.2003 21:27:07]

#

lainaus:

Eikö kaikista helpoin olisi suojata kayttajat.txt .htaccessilla ja kiertää php:ssä salasanasuojaus hakemalla data todellisesta polusta

Toi saattaa olla ihan viisasta tuntus ainaki aika järkevältä pitää kokeilla.

Jep sehän toimiikin noin parhaiten kiitti vinkistä :)


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta