如何修复 Linux 网络服务器上的权限

如何修复 Linux 网络服务器上的权限

简短版本:我无法使用 php 上传图片,我不知道如何解决权限问题

细节 :

我已经使用 vps 大约三年了,我将其设置为运行 Sendy(一个小型​​新闻通讯/电子邮件脚本),它运行的是 debian 7

我创建了一个用户“sendy”,“www”目录位于用户文件夹 /home/sendy/www 内

问题是最近我想要开始上传但却发现权限混乱。

这是我在 error.log 上得到的结果

[Thu Nov 14 12:43:38 2019] [error] [client xx.xxx.xx.xxx] (13)Permission denied: file permissions deny server access: /home/sendy/www/mail/uploads/1573731818.png, referer: http://example.com/mail/create?i=3

欢迎任何帮助。

答案1

除了用户“sandy”有权在其自己的主目录(和子目录)中写入之外,Web 服务器还拥有自己的用户(通常是 www-data、nobody、apache 等)。该用户将执行写入操作。

因此,请检查哪个用户正在运行 Web 服务器守护程序,将目标目录的所有权更改为该用户,然后重试。

考虑到您提到的消息,您应该能够使用类似以下的方法进行修复:

chown www-data /home/sendy/www/mail/uploads/

或者 chow sendy:www-data /home/sendy/www/mail/uploads/ chomd -R g+w /home/sendy/www/mail/uploads/

不管怎样,我们都允许www-data写入您的目录。第一种情况假设您的sendy用户不需要任何访问权限,第二种情况则允许同时sendy写入www-data您的上传目录。

相关内容