IIS7 - upload souborů na server

Diskuze k serverovým edicím Microsoft Windows

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod packy 24. 1. 2013 20:50

Ahoj,
mám nainstalovaný Windows Server 2008 standard (64bit) a IIS7. Na server mi běží FileMaker Server 12 s databází. Do databáze chci přes PHP nahrávat z webové stránky obrázek (zjednodušený příklad). Obrázky se nahrávají do adresáře a do DB se linkují.
Když skriptem obrázek nahraju, objeví se ve složce, ale nejde otevřít (přístup byl odepřen). Stejně tak se neobjeví v prohlížeči. Když si přenastavím sdílení složky a zabezpečení, tak obrázek otevřít jde - když ho ale nahraji znovu, tak se opakuje stejná situace. Podle mě IIS tomu obrázku přiřadí jiné zabezpečení - nevím ale kde to přenastavit a změnit.
Prosím o pomoc :)
Předem díky
Packy
Geomatika for ever...
packy
Junior
Uživatelský avatar

Odeslat příspěvekod Milanr1 24. 1. 2013 20:54

Nastav v ACL korektně dědičnost cílové složky.
Milan
Milanr1
Pokročilý
Uživatelský avatar

Odeslat příspěvekod packy 24. 1. 2013 20:58

A kde se to ACL nastavuje? Nemám se serverem moc zkušeností a nerad bych tam něco "rozbil" ;-)
Díky
Packy
Geomatika for ever...
packy
Junior
Uživatelský avatar

Odeslat příspěvekod Milanr1 24. 1. 2013 21:00

V GUI přesně tam, kde jsi nastavoval
packy píše: zabezpečení

Viz magickou klávesu F1.
V cmd pomocí icacls <-> RTFM.

Btw:
Důležité je, že to víš:
packy píše:Nemám se serverem moc zkušeností a nerad bych tam něco "rozbil"

Mnoho BFU to ani netuší a přesto se vrhají do konfigurace OS po hlavě.
A pak nastanou dotazy, proč to nefunguje. :-)
Milan
Milanr1
Pokročilý
Uživatelský avatar

Odeslat příspěvekod packy 24. 1. 2013 21:26

Radil jsem se o tom s naším správcem, ten mi řekl, že rozumí Linux serverům a ať si to tedy někde vygooglím.
Zkoušel jsem se v tom "vrtat" a na nic jsem nepřišel. Když se podívám na Zabezpečení toho nahraného obrázku, tak tam najdu, že nejsem správcem dané položky - je tam pouze uživatel SYSTEM, Network service a Administrator. Jakmile tam přidám svého uživatele tak to funguje.
Kde a pro jakého uživatele musím nastavit to dědění vlastností složky? Případně jak přesně sestavit ten cmd příkaz?
Adresář je c:/inetpub/wwwroot/FM, můj uživatel je NAKI, ale bude se tam přistupovat přes web, tak nevím jak by se ten uživatel měl jmenovat (everyone?).
Ještě jednou díky za pomoc.
Packy

EDIT:
Když do adresáře soubor překopíruji v TC, tak se chová "normálně". Když ho nahraju přes IIS tak nemá přiřazeného vlastníka.
Naposledy upravil packy dne 24. 1. 2013 21:49, celkově upraveno 1
Geomatika for ever...
packy
Junior
Uživatelský avatar

Odeslat příspěvekod Milanr1 24. 1. 2013 21:48

Co Ti na tom není jasné?
Milanr1 píše:Nastav v ACL korektně dědičnost cílové složky.

Vždyť je to tak prosté!
Opravdu chceš nastavovat ručně vlastnosti každého jednotlivého souboru? :-D :oboze:
Dědičnost to zajistí automaticky: dřinu strojům! ;-)
Nefunguje Ti magická klávesa F1?
Prostuduj si:
http://www.windowsitpro.com/article/acc ... ance-97897
http://support.microsoft.com/kb/919240/cs

Btw:
ACL je ve všech pokročilých FS ± totožný => výmluva na Unix neplatí.
Porovnej např. s nastavením dědičnosti v Solarisu:
http://docs.oracle.com/cd/E19082-01/817 ... index.html
=> v podstatě totéž.
Buď váš správce Unixu nezvládá ACL (pochybuji, to jsou naprosté základy) nebo Ti jen slušně sdělil, abys ho neotravoval a naučil se to sám (to je to nejlepší, co pro Tebe mohl udělat). ;-)
Naposledy upravil Milanr1 dne 24. 1. 2013 21:56, celkově upraveno 1
Milan
Milanr1
Pokročilý
Uživatelský avatar

Odeslat příspěvekod packy 24. 1. 2013 21:54

slušně sdělil, abys ho neotravoval a naučil se to sám (to je to nejlepší, co pro Tebe mohl udělat).

Problém je, že já jsem odborník v úplně jiné oblasti (geoinformatice) a nastavování práv na serveru a studování problematiky mě obírá o čas, který můžu věnovat svému výzkumu ]:-<
Jak jsem psal do editu výše - když tam soubor jen překopíruji v TC, tak funguje "normálně", když ho nahraju přes IIS, tak nemá vlastníka. Pokud dědičnost chápu dobře, tak by se vlastnosti měly dědit v těchto případech stejně - ale nedědí. Je to správná myšlenka, nebo se pletu?
Díky
Packy
Geomatika for ever...
packy
Junior
Uživatelský avatar

Odeslat příspěvekod Milanr1 24. 1. 2013 21:58

Pleteš.
Především jsi stále ještě nesdělil, jak je/byla nastavená dědičnost dané složky a jak jsi ji nastavil Ty.
Pokud nejsi systémák, proč se hrabeš do nastavení serveru? :roll:
Svěř to odborníkovi.
Milan
Milanr1
Pokročilý
Uživatelský avatar

Odeslat příspěvekod packy 24. 1. 2013 22:04

Do nastavení serveru jsem se začal montovat, protože se na mě správce vykašlal a já to potřebuju mít funkční. Nemám však kapacitu se problematice věnovat do hloubky - domníval jsem se, že stačí někde něco "zaškrtnout" a bude to fungovat.
Nahrávání obrázků je součástí většího projektu a bylo by dobré to mít co nejdříve funkční. Máme to celé naprogramované, ale končím na hloupém nastavení dědičnosti :grr:
Zkusím dál uhánět správce, ale výsledek je nejistý ...
Packy

-- 24. 1. 2013 22:09 --

Když dám na složce kartu Zabezpečení - dole je tlačítko upřesnit, tak se dostanu do nabídky všech oprávnění. Nevím pro kterého užívatele to dědění nastavit - všichni mají nastevené úplné řízení, není děděno a platí to pro Tato složka, podsložka a soubory.
Myslel jsem si, že počítačům trochu rozumím ... ale tady vím že nic nevím :-[
Geomatika for ever...
packy
Junior
Uživatelský avatar

Odeslat příspěvekod Milanr1 25. 1. 2013 08:51

Konečně ses dopracoval k příčině zádrhele! ;-)
packy píše:není děděno

Mohl jsi to ovšem sdělit už v úvodním dotazu.
A nakonec sis odpověděl sám:
packy píše:stačí někde něco "zaškrtnout" a bude to fungovat

Jen musíš vědět, kde:
inherit.jpg

+ tlačítko Použít.
Tohle je samozřejmě totální nesmysl a extrémně nebezpečné:
packy píše:všichni mají nastevené úplné řízení

=> usnadňuje hacknutí serveru.
Ale raději se v tom při svých neznalostech dále už nehrab a přenech správu webového serveru odborníkovi!

Btw:
packy píše:Myslel jsem si, že počítačům trochu rozumím

Naivko! :-) Nikdo nerozumí počítačům. Zatím nám bylo dopřáno nahlédnout za tlustou záclonou a jen koutkem oka do nekonečného digitálního vesmíru.
Moudrý postřeh:
packy píše:tady vím že nic nevím

To věděl už moudrý Sokrates
Scio me nihil scire

Škoda, že si toho není vědom každý! ;-)
Jsi vzácnou výjimkou mezi programátory! Máš bod!
Milan
Milanr1
Pokročilý
Uživatelský avatar

Odeslat příspěvekod packy 25. 1. 2013 12:30

Ahoj,
toho zaškrtávacího boxu jsem si všiml hned, nicméně, když ho zakšrtnu a dám použít, tak se opět odškrtne.
Pokud je v adresáři již nahraný obrázek, tak to vypíše chybu - viz příloha.
Jsi vzácnou výjimkou mezi programátory!

Bohužel nejsem programátor, ale GIS analytik - ale v i našem oboru platí to o tom vědění a nevědění.
Packy
Přílohy
chyba.png
Chyba při pokusu o změnu pravidel
chyba.png (6.18 ) Zobrazeno 3875 krát
Geomatika for ever...
packy
Junior
Uživatelský avatar

Odeslat příspěvekod Milanr1 25. 1. 2013 13:12

Nevlastníš práva ke změně ACL.
Možná si je osobuje pouze správce serveru?
Co s tím?
Pokus se převzít vlastnictví dané složky FM2 (viz kartu Vlastník)
A pak znovu nastav pro svůj aktuální účet plná práva nad danou složkou.
Teprve poté můžeš změnit dědičnost.

Btw:
mrkni se na skriptík, který sem cpe bitmapy.
Nemá náhodou nastaveno kopírování včetně ACL?
Milan
Milanr1
Pokročilý
Uživatelský avatar

Odeslat příspěvekod packy 25. 1. 2013 13:36

Jako vlastník složky je tam můj účet uveden. Když si pro sebe nastavím úplné řízení, tak to opět vyhodí chybu (viz obrázek výše), nicméně úplné řízení pro složku se nastaví. Když se snažím zaškrtnout opět to dědění tak se to nepovede. Mám tam asi zlý skřítky :)
Skript na nahrávání obrázků mám k dispozici, nicméně nejsem programátor a příliš tomu nerozumím. Nemůže být opravdu chyba v nastavení IIS?
Packy
Geomatika for ever...
packy
Junior
Uživatelský avatar

Odeslat příspěvekod Milanr1 25. 1. 2013 13:40

IIS přebírá ACL z NTFS, nemá žádný „vlastní“.
Mrkni se do skriptu, jakým nástrojem kopíruje a zda nepřebírá ACL ze zdrojového serveru (= chyba).
Milan
Milanr1
Pokročilý
Uživatelský avatar

Odeslat příspěvekod packy 25. 1. 2013 13:50

Jak říkám - zdrojáku příliš nerozumím. Přikládám ho jako přílohu - není to dlouhé, jen několik řádků.
Packy

Kód: Vybrat vše
<HTML>
<BODY>
<?php

if (isset($_POST['action'])&& isset($_POST['type'])&& isset($_POST['id']) )
  {
   $id=$_POST["id"];
   $type=$_POST["type"];
   $action=$_POST["action"];
  }


if (isset($_GET["id"]) && isset($_GET["type"]))
    {
    $id=$_GET["id"];
   $type=$_GET["type"];
   $action='nic';
   }
$type_bez='';
for ($i=0; $i<strlen($type); $i++):
     
      if (!is_numeric($type[$i]))
      {
        $type_bez=$type_bez.$type[$i];
       
      } 
      endfor;
     
     
switch ($type_bez) {
case "foto":{
              $t_size[0]=450;
              $t_size[1]=300;
               break;
              }
  case "horn":{
              $t_size[0]=90;
              $t_size[1]=90;
               break;
              }
  case "petro":{
              $t_size[0]=90;
              $t_size[1]=90;
               break;
              }
   case "zrno":{
              $t_size[0]=450;
              $t_size[1]=300;
               break;
              }
   case "faze":{
              $t_size[0]=450;
              $t_size[1]=300;
               break;
              }
    case "mraz":{
              $t_size[0]=450;
              $t_size[1]=300;
               break;
              }           

}



if ($action=='uloz')
{
   $nazev=$_FILES["obr"]['name'];
  $cil=$id.'_'.$type.'.jpg';
  $cil_mini=$id.'_t_'.$type.'.jpg';
//   echo $_FILES["obr"]['type'] ;
// if (($_FILES["obr"]['type']=="image/jpeg")||($_FILES["obr"]['type']=="image/pjpeg"))
   // {
    if (move_uploaded_file($_FILES["obr"]['tmp_name'],$cil)) //test zapisu
      {
          echo 'soubor prenesen';
         }
         else echo 'soubor neprenesen';
    //}
  //else echo 'neni obrazek *.jpg';
     

}

if ($action=='smaz')
  if (!unlink($id.'_'.$type.'.jpg'))
   echo 'obrazek nelze smazat';


 
if (file_exists($id.'_'.$type.'.jpg'))
  {

     echo '<form method="post" action="load_foto.php" enctype="multipart/form-data">';
echo '<input type="hidden" name="id" value="'.$id.'">';
echo '<input type="hidden" name="type" value="'.$type.'">';
echo '<input type="hidden" name="action" value="smaz">';
  echo '<input type="submit" name="smaz" value="Smaz">';
echo '</form>';
echo '<img src="'.$id.'_'.$type.'.jpg">';
      }
   else
   {
    echo '<form method="post" action="load_foto.php" enctype="multipart/form-data">';
echo '<input type="hidden" name="action" value="uloz">';
echo '<input type="hidden" name="id" value="'.$id.'">';
echo '<input type="hidden" name="type" value="'.$type.'">';

//echo "<B>Jmena nahravanych souboru zadavejte bez ceskych znaku!!!!!!</B><BR>";
  echo "Zadejte cestu k fotografii:<BR>";
  echo '<INPUT type="file" name="obr" size="1" ><BR><BR>';
  echo '<input type="submit" name="Uloz" value="Uloz">';
echo '</form>';
   }

 
 
  ?> 
  </BODY>
</HTML>
Geomatika for ever...
packy
Junior
Uživatelský avatar

Další stránka

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků