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

禁用/启用用户访问/下载,但允许php编辑-使用chown和chmod,php,Php,我想要 将上传的文件移动到某个文件夹(比如http://localhost/myproject/protected)。(PHP应该能够rm,mv,cp,…所有内的东西都受保护) 启用/禁用用户对任何文件的访问/下载,例如http://my.ip.add.ress/myproject/protected/foo.bar(和http://localhost/myproject/protected/foo.bar也不例外!) 。。。使用chmod和chown我想知道这是否可能 附:我有个主意:

我想要

  • 将上传的文件移动到某个文件夹(比如
    http://localhost/myproject/protected
    )。(PHP应该能够
    rm
    mv
    cp
    ,…所有
    内的东西都受保护
  • 启用/禁用用户对任何文件的访问/下载,例如
    http://my.ip.add.ress/myproject/protected/foo.bar
    (和
    http://localhost/myproject/protected/foo.bar
    也不例外!)
。。。使用
chmod
chown
我想知道这是否可能


附:我有个主意:

// 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");
?>

不要更改任何chmod您只需将chown更改为apache,然后只有您的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);

sudo chown-R apache protect/foo.bar
chown:invalid user:'apache',trusted
$user\u name=“www data”
仍然可以下载:(ps aux | egrep'(apache | httpd)通常会显示apache以什么身份运行。默认用户通常是“nobody”或“apache”
// 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);