WSL中的默认权限和所有权

问题描述 投票:0回答:1

我目前正在从Ubuntu 18.04 VirtualBox切换到WSL。一切都已启动并运行,以具有完整的Web开发环境。不幸的是,文件许可和所有权现在对我来说是个问题。

-免责声明-我知道在服务器环境中这将是非常糟糕的,而且不会完成。这仅用于我的本地开发过程,此要求将保留在那里。

我想实现的是,要在我的/ var / www(以及下面的所有内容)中拥有一套一致的权限和所有权。

  • / var / www中的每个元素都应该由我的shell用户拥有,无论文件还是目录。
  • 每个元素都应具有组www-data,以便Web服务器用户可以访问。
  • 每个文件应具有权限0664,每个目录应具有0775
  • 每个新元素都应遵循这些要求。

我到目前为止研究的内容:如果我从外壳程序或在VSCode中创建新的目录/文件,则会使用我的用户和组。如果从Windows资源管理器创建新目录,则所有权为root:root。不过,我还必须弄清楚如何为新对象设置默认权限。

我只想使用一种易于使用的方法从系统上的任何位置对文件进行CRUD。

有人对此有想法吗?

非常感谢,达纳克。

编辑:将所有内容都设置为www-data:ww-data并将我的shell用户添加到www-data -group也是可以的,如果如上所述那样应用了权限。

ubuntu-18.04 windows-subsystem-for-linux user-permissions
1个回答
0
投票

对于遇到相同问题的每个人,并找到此问题:

~[USER~/.profile下,我取消对umask属性的注释,并将其设置为002。根据此guide,将所有新创建的文件设置为0664,并将所有新目录设置为0775

然后我将www-data用户添加到我的shell用户组中,并带有

sudo usermod -a -G www-data [GROUP]

因此,我正在创建的每个文件都归我的shell用户所有,并在该用户的组内。但是www-data用户也可以将其设为红色。这应该导致不总是使用

find ./ -type d -exec chmod 775 {} \;

例如,在迁移后在Web项目的所有目录上设置正确权限的命令。

仅当文件和目录是从WSL-bash创建的时,此解决方案才有帮助。如果您正在使用资源管理器或尝试从VSCode终端创建文件,则仍将应用默认的umask 022

© www.soinside.com 2019 - 2024. All rights reserved.