当前位置: 首页>>技术问答>>正文


如何将www-data用户提供给我的主文件夹中的文件夹?

, , , ,

问题描述

我有一个文件夹:/home/myuser/folderA

我想给www-data用户写上面的权限,而’myuser’继续正常访问(因为它仍然是myuser的主文件夹)。

我需要使用哪些命令?

注意:我不希望www-data访问/home/myuser/中的任何其他文件夹。

提前致谢。

最佳解决思路

首先,将自己添加到组www-data

usermod -a -G www-data (your username)

然后:

chgrp www-data /home/myuser/folderA
chmod g+rwxs /home/myuser/folderA

除非您的/home/myuser上的权限不允许其他用户访问,否则应该这样做。

第一个命令将文件夹的组所有权更改为Web服务器的组所有权。第二个命令为www-data组的成员提供读,写,enter-directory权限,组s标志将确保在该目录中创建的任何文件都将www-data作为组 – 因此,如果您创建文件为myuser,则www-data用户将有访问权。

铌。这还取决于您的用户帐户和Web服务器的umask设置:您需要确保在folderA中创建的文件具有组rw访问权限(以及在需要组rwx中创建的目录)

如果您的网络服务器没有对/home/myuser目录的输入权限(非常明智),那么除非您做其他事情,否则它不会进入那里。两个溶解:

  1. sudo mount --bind /home/myuser/folderA /var/www/mysite/folderA(这是一个丑陋的黑客,在重启后必须重复。但是一个强大的技巧,也可以用来在SSH jails中访问文件夹。)

  2. 只需将共享文件夹移动到其他位置,例如/home/shared-stuff/folderA

第二个选项是最好的。假设folderA中的东西是公开的,你不关心谁看到它,你可以设置它

sudo mkdir -m777 /home/shared-stuff

然后,您可以将具有上述权限的文件夹放入文件夹内,并将文件夹B放入www-data不应具有不同权限的文件夹,例如:

$ cd /home/shared-stuff ; ls -l
drwxrwsr-x 2 myuser www-data   4096 Jan 17 21:46 folderA
drwxrwx--- 2 myuser myuser     4096 Jan 17 21:46 folderB

次佳解决思路

另一种方法是直接在apache配置中更改用户名,这是因为它是您的本地计算机,并且您从其他地方保存图像会破坏对该文件夹所做的任何权限。如果您只有1个用户而且不关心www-data也要做!

$ sudo vi /etc/apache2/apache2.conf

查找用户和组并将您的用户放入User <Your User> Group <Your Group>

$ sudo service apache2 restart

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/3034.html,未经允许,请勿转载。