PHP yükleme izin sorunu

0 Cevap php

Doğru adamlar ive aşağıdaki yükleme formu ile dosya izinleri ile bir sorun koştu. Bir metin dosyası global kullanıcılar tarafından yükleme / dir geçirilir.

mysite$ ls -l
drwxrwxrwx 2 user user 4096 2010-09-24 13:07 upload

Ben root olarak giriş değilim gibi ama alanına yüklenen yeni bir dosya sınırlayıcı izinleri ile yükleme / dir kendini kaydedilir ve değiştirilemez. örn.

upload$ ls -l
-rw-r--r-- 1 www-data www-data 3067 2010-09-24 13:07 Readme.txt

Bu sorun, küresel kullanıcılar tarafından yükleme klasöre eklenen tüm dosyalar için açıkça aynıdır. Dosya yüklendikten sonra ben etki üzerinde çalışan bir php komut dosyası içine root şifresini gömmeden Dosya haklarını değişen bir yol gerekir. yardım lütfen!

yeni dosyalar eklendiğinde içeren klasörü olarak dosyalara aynı haklara ilişkilendirmek için herhangi bir yolu var mı?

formu göndermek:

<html>
<body>

<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" /> 
<br />
<input type="submit" name="submit" value="Submit" />
</form>

</body>
</html>

upload_file.php:

<?php
if ($_FILES["file"]["type"] == "text/plain")
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

    if (file_exists("/home/user/mysite/upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "/home/user/mysite/upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?>

0 Cevap