我要...
-
move_uploaded_files
到某个文件夹(假设http://localhost/myproject/protected
)。(PHP 应该能够rm
、mv
、cp
、...里面的一切protected
) - 启用/禁用用户对任何文件的访问/下载,例如
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");
?>
但我认为它不够安全:-{|)
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)
不要更改任何你只需要 chown 到 apache 的 chmod,那么只有你的 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);