好吧...我已经设置好我的服务器,并且我有 4 个站点驻留在 /var/www/ 中。根据这篇文章,每个站点目录及其下的文件都是 root:www-pub :
处理 /var/www 中 Apache 2 的用户 www-data 权限的最佳方式是什么?
我的用户 cdog 是 www-pub 的一部分,正如上面帖子所指示的那样,经过更多研究,我相信 umask 设置正确。
问题 1:在任何 /var/www/ 目录中创建新文件都会给我权限
cdog:www-pub -rw-r--r--
所有其他文件都是
root:www-pub -rw-rw-r--
我被引导相信(根据上面的帖子)创建的任何新文件都将在以后创建。
问题 2这些目录中的大多数,具有以下权限
drwxrwsr-x
是 Joomla 目录。登录到 Joomla 后端给了我一大堆不可写的目录,这不利于更新/安装扩展/插件等。
首先,为什么我的文件没有以正确的权限创建?其次,为什么 Joomla 目录不可写?
在使用这些文件之前,您需要设置您的 umask。
用户的umask决定了新文件获得的权限。当创建文件或目录时,系统以最宽松的权限(分别为 0666 和 0777)开始,然后清除umask 中指定的位。因此,默认的 umask 022 会导致组和世界写入位被清除,这就是为什么您最终得到 0644 的原因。
要创建具有组写权限的文件,您需要将 umask 更改为 002(即仅清除世界写权限)。这可以在特定的 shell 会话中完成
umask 002
,但这不会跨会话持续存在。有多种方法可以永久设置 umask。如果安装并配置了pam_umask
/etc/login.defs
PAM 模块,您可以在以下位置进行设置:否则,您可以在 shell 初始化脚本中设置它,
~/.bashrc
如果您只希望它应用于您的用户,或者/etc/bash.bashrc
如果您希望它应用于所有用户:看起来您正在使用 www-pub,它是 www-data 组的一部分吗?