PHP 中的 chmod 777

发布于 2024-10-17 17:04:07 字数 213 浏览 2 评论 0原文

如果我使用 mkdir() 在 php 中创建一个文件夹,它具有 www-data : www-data 用户和 755 权限。

问题是我无法使用 ftp 用户 (zapbe:psasrv) 删除此文件夹 我尝试在 php 中使用 chmod($path, "0777") 修改文件夹,但这不起作用。

如何使 www 数据和 ftp 用户都可以读取/删除创建的文件夹和上传的文件?

If I create a folder in php with mkdir() it has the www-data : www-data user and 755 permissions.

The problem is I can't delete this folder with the ftp-user (zapbe:psasrv)
I tried to modify the folder with chmod($path, "0777") in php but this doesn't work.

How can I make the created folders and uploaded files readable / removeable for both the www-data and the ftp-user?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

爱的那么颓废 2024-10-24 17:04:07
bool chmod ( string $filename , int $mode )

在 PHP 中,它们可能对安全性有一些限制,因此根据您的配置,它可能无法工作。

上面的函数返回一个布尔值,让您知道它已成功更改实体权限。

if(!chmod($directory,0777))
{
    echo "Unable to chmod $direcotry";
}

还有一段 PHP 的引用:

当前用户是PHP运行的用户。它可能与您用于正常 shell 或 FTP 访问的用户不同。在大多数系统上,只有拥有该文件的用户才能更改模式。

了解上述内容后,您应该查看 chown

bool chmod ( string $filename , int $mode )

Within PHP they might be some limitations on the security, therefore the depending on your configuration it may not work.

The above function returns a booleon to let you know either it has succeed in changing the entities permissions.

if(!chmod($directory,0777))
{
    echo "Unable to chmod $direcotry";
}

Also a quote from PHP:

The current user is the user under which PHP runs. It is probably not the same user you use for normal shell or FTP access. The mode can be changed only by user who owns the file on most systems.

Understanding above you should look at chown

仅此而已 2024-10-24 17:04:07

为了删除目录,您需要对父目录(而不是要删除的目录)具有写权限。为了提供对父级的写访问权限,一个好的方法是让该父级由 www-data 和您的 ftp 用户都是其成员的某个组拥有,并且永远不要使用 777 权限。另外,请确保您的父文件夹没有设置粘滞位。

In order to remove a directory, you need to have write permissions on the parent directory, not on the one you want to remove. In order to provide write access on the parent, a good approach would be to make that parent owned by some group that both www-data and your ftp user are members of, and never use the 777 permissioning. Also, make sure your parent folder does not have the sticky bit set.

谎言 2024-10-24 17:04:07

默认情况下,当您在 *nix 中创建文件夹时,其他用户将无法删除/修改该文件夹。

要更改 www-data 创建的文件夹的权限,请从浏览器中运行 php 脚本中的命令,它应该会成功更新

注意不要将新权限放在双引号中,它必须是
八进制数

chmod($path, 0777);
// not chmod($path, "0777);

一旦你这样做,任何人都可以修改文件夹

by default when you create a folder in *nix other users will not have the ability to delete/modify the folder.

to change the permissions of the www-data created folder, run the command in a php script from the browser and it should update successfully

Note don't put the new permissions in double quotes, it needs to be an
octal number

chmod($path, 0777);
// not chmod($path, "0777);

Once you do that anyone can modify the folder

逆夏时光 2024-10-24 17:04:07

删除双引号并尝试检查文件的所有者

chmod($path, 0777) 

Remove the double quote and try and also check for the owner of file

chmod($path, 0777) 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文