我设法将 DocumentRoot 目录形式更改/var/www
为,/home/user/www
并且运行良好,除了我无法在没有 root 访问权限的情况下复制/粘贴甚至删除任何文件的问题。
由于我使用 SASS 编译软件,其中的一些文件在项目目录中被编译和输出。它不再输出任何文件并给出权限被拒绝。
我需要帮助使所有 DocumentRoot 子文件夹和文件拥有完全权限,但没有 root 访问权限。
答案1
sudo su
假设你有 su 权限,如果没有,则以下命令都应在前面加上 sudo
将自己添加到服务器用户组
adduser user:www-data (could be another user group)
更改文档根目录中所有文件的所有权,以确保服务器可以管理它们
chown www-data:www-data -R /path/to/directory
附注:chown 可以使用你的用户:www 数据这意味着您拥有这些文件,但网络服务器仍然可以访问它们。(如果这样做,您肯定会需要 umask,否则您可能会频繁更改所有权和权限,因为网络服务器将拥有它创建的文件)。
使所有文件(包括目录)均可读写(chmod 和 -R 递归标志可能存在安全隐患,因此请谨慎使用)
chmod g+rw -R /path/to/directory
现在,如果文件是由 Web 服务器本身创建的,则通常只有所有者具有写入权限,而组具有读取权限。要解决该问题,您需要查看上面提到的 umask,并获取有关在何处设置 umask 以及针对特定应用程序的正确设置的说明。
对于 apache 2(我使用 nano,因为我发现它是终端中最简单的编辑器)。
nano /etc/apache2/envvars
add to end of file: umask 002
save the file.
service apache2 restart
这是在这里找到的:https://stackoverflow.com/questions/428416/setting-the-umask-of-the-apache-user并且可能应该是提交的接受答案帕特里克·费舍尔
答案2
您可以使用 更改文件夹和文件的所有者chown
。
sudo chown $USER:$USER path/to/fileorfolder
此后,请确保您不要以 root 身份在该文件夹中创建新文件和文件夹,因为新文件和文件夹将再次由 root 拥有。