php - 使用 PHP 脚本更改新创建目录的所有者和组

标签 php permissions chown

运行 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/

相关文章:

php - 按另一个表中的数据对行进行排序

带断点的 PHP 调试 - 案例研究,例子..?

Python子进程权限

nix - 如何在 NixOS 上安装 NPM 最终用户包?

php - 在 session 自动销毁之前调用自定义方法

php - 无法打开 sunrise.php 以包含在内

permissions - RealBasic应用程序在Writeline上崩溃

android - 在flutter应用程序中获得互联网许可

permission-denied - 如何更改vmware共享文件夹的权限

linux - chown如何继承父目录的所有者和组或当前帐户用户