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

Modified on: Sat, 09 Jun 2018 22:23:23 +0800

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

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

我需要使用哪些命令?

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

提前致谢。

作者:nLinked

最佳答案

首先,将自己添加到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组的成员提供读,写,输入目录权限,组s标志将确保在该目录中创建的所有文件将www-data作为组 - 所以如果您创建一个文件为myuserwww-data用户将有权访问。

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

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

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

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

  3. 醇>

    第二个选项是最好的。假设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
    

相关问答

添加新评论