Won*_*rks 4 php permissions chown
运行 debain LAMP 的专用 Linux 服务器。
我运行一个 PHP 脚本(使用浏览器),该脚本在同一服务器上的文件夹中创建一个目录(以及各个子目录),以便随后使用 Dropbox 共享使用。
这些目录是在/home/dropbox/New_Project_Name/new_folders用户“dropbox”中创建的,并且应该由用户“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);
Run Code Online (Sandbox Code Playgroud)
请记住,它可能会引发错误,因为存在子文件夹并且操作失败。while 循环应该可以解决问题。
权限可能存在问题,具体取决于服务器配置
还有另一种方法可以使用“exec”命令递归运行它。
你可以这样:
exec("chown -R ".$owner.":".$group." ".$folder);
Run Code Online (Sandbox Code Playgroud)
这将更改该文件夹和所有子文件夹的用户和组。但要注意,使用系统是“危险的”。您可以运行任何 shell 命令。不要玩弄它太多。