当我在www文件夹上运行ls -l时,我看到root:root是所有者/组
当我运行ps aux | grep apache2 ps aux | grep apache2 ,我得到了root所拥有的第一个进程(我认为这是正常的,但为什么它由root拥有而不是www-data?),我得到了由www-data拥有的6个其他进程。
现在,由于ls -l /var/www显示-rw-r--r-- ,这意味着www-data没有写权限,因为它在“world”(也不在“root”组中) 。
但是,如果在我的web应用程序中,用户可以上传图片,我想应该有一个名为“uploadedpics /”的/www文件夹, www-data将具有写权限,对吗?
因此,如果用户和组是root:root用于/www文件夹,如何创buildwww-data可以写入的子目录?
非常感谢你的帮助
由root拥有的第一个Apache进程是Linux早期的计算工具,其中root用户是唯一可以绑定到1024以下端口的帐户。服务内容的进程在www用户下运行。
要允许对文件夹的写入权限,请将所有者或组更改为www用户和chmod 775或类似名称。
您可以将新的文件夹组更改为www-data( sudo chgrp www-data <your-folder> )并将w权限授予该组( sudo chmod g+w <your-folder> )。
另一种方法(我更喜欢)是使用ACLs( man setfacl获取更多细节,如果你想这样做的话)。