2013-10-25 47 views
0

我想...禁用/啓用訪問/下載用戶,但允許PHP編輯 - 利用chown和CHMOD

  • move_uploaded_files到某個文件夾(可以說http://localhost/myproject/protected)。 (和PHP應該能夠rmmvcp ......裏面protected一切)
  • 啓用/禁用訪問/下載用戶的任何文件,例如http://my.ip.add.ress/myproject/protected/foo.bar(和http://localhost/myproject/protected/foo.bar也不例外!)

...使用chmodchown我想知道這是否可能?!


P.S.我有一個想法:

// firstly chown -R www-data:www-data /var/www 

<?php 
    //file : localhost/myproject/foo.php 
    //use following when access for user is disabled 

    shell_exec("chmod -R 0777 protected"); 

    // edit the folder ... 
    // edit the folder ... 
    // edit the folder ... 

    shell_exec("chmod -R 0000 protected"); 
?> 

但我不認爲這是足夠安全的: - {|)

O.M.T. (一件事)我沒有以下內容:

  • chown -R www-data:www-data /var/www
  • chmod -R 0700 /var/www/myproject/protected

PHP可以訪問這些文件,但用戶也可以訪問它們。


編輯1:爲ps aux | egrep '(apache|httpd)'輸出:

root  12748 0.0 0.2 39984 8256 ?  Ss 01:54 0:00 /usr/sbin/apache2 -k start 
www-data 12755 0.0 0.1 40208 6008 ?  S 01:54 0:00 /usr/sbin/apache2 -k start 
www-data 12756 0.0 0.1 40008 4324 ?  S 01:54 0:00 /usr/sbin/apache2 -k start 
www-data 12757 0.0 0.1 40008 4324 ?  S 01:54 0:00 /usr/sbin/apache2 -k start 
www-data 12758 0.0 0.1 40008 4324 ?  S 01:54 0:00 /usr/sbin/apache2 -k start 
www-data 12759 0.0 0.1 40008 4324 ?  S 01:54 0:00 /usr/sbin/apache2 -k start 
sylap 12896 0.0 0.0 5904 860 pts/1 S+ 02:25 0:00 egrep --color=auto (apache|httpd) 

回答

1

不要改變任何搭配chmod你只需要CHOWN阿帕奇那麼只有你的PHP代碼就能夠修改這

// File name and username to use 
$file_name= "foo.php"; 
$path = "/home/sites/php.net/public_html/sandbox/" . $file_name ; 
$user_name = "apache"; 

// Set the user 
chown($path, $user_name); 
+0

' sudo chown -R apache protect/foo.bar chown:無效用戶:'apache',試過'$ user_name =「www-data」'仍然可以下載:( –

+0

ps aux | egrep'(apache | httpd)'通常會顯示apache運行的是什麼。 – user2921245

+0

默認用戶,通常是「nobody」或「apache」 – user2921245