禁用/启用用户的访问/下载,但允许 PHP 编辑 - 使用 chown 和 chmod


disabling/enabling access/download for user but allow php to edit - using chown and chmod

我要...

  • move_uploaded_files到某个文件夹(假设http://localhost/myproject/protected)。(PHP 应该能够rmmvcp、...里面的一切protected
  • 启用/禁用用户对任何文件的访问/下载,例如http://my.ip.add.ress/myproject/protected/foo.barhttp://localhost/myproject/protected/foo.bar也不例外!

。使用chmodchown我想知道这是否可能?!


附言我有个主意:

// 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 可以访问这些文件,但用户也可以访问它们。


编辑 1ps 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)

不要更改任何你只需要 chownapachechmod,那么只有你的 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);