运行 debain LAMP 的专用 Linux 服务器。
我运行一个 PHP 脚本(使用浏览器),该脚本在同一服务器上的文件夹中创建一个目录(和各种子目录),以供后续使用 Dropbox 共享使用。
目录创建于 /home/dropbox/New_Project_Name/new_folders
并且应该归用户“dropbox”所有。
但是,运行 php 脚本会导致脚本生成的新目录归 'www-data'
所有。
从浏览器运行 php 脚本以生成具有用户和组“dropbox”所有权的新目录或随后运行脚本以检查 www-data 所有权并递归地将文件和目录更改为“的最佳原因是什么”保管箱'
非常感谢您的帮助。
最佳答案
未测试,但创建文件夹后,您可以运行另一行代码来更改所有者/组
// define user and group
$owner = "dropbox";
$group = "dropbox";
$folder = "/home/dropbox/New_Project_Name/new_folders";
// change the owner and group
chown($folder, $owner);
chgrp($folder, $group);
请记住,它可能会引发错误,因为存在子文件夹并且操作失败。 while 循环应该可以解决问题。
权限可能存在问题,直到服务器配置
还有另一种使用“exec”命令递归运行它的方法。
你可以这样:
exec("chown -R ".$owner.":".$group." ".$folder);
这将更改文件夹和所有子文件夹的用户和组。但要注意,
使用系统是“危险的”。您可以运行任何 shell 命令。不要玩太多。
关于php - 使用 PHP 脚本更改新创建目录的所有者和组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25282241/