我目前正在从Ubuntu 18.04 VirtualBox切换到WSL。一切都已启动并运行,以具有完整的Web开发环境。不幸的是,文件许可和所有权现在对我来说是个问题。
-免责声明-我知道在服务器环境中这将是非常糟糕的,而且不会完成。这仅用于我的本地开发过程,此要求将保留在那里。
我想实现的是,要在我的/ var / www(以及下面的所有内容)中拥有一套一致的权限和所有权。
www-data
,以便Web服务器用户可以访问。0664
,每个目录应具有0775
。我到目前为止研究的内容:如果我从外壳程序或在VSCode中创建新的目录/文件,则会使用我的用户和组。如果从Windows资源管理器创建新目录,则所有权为root:root
。不过,我还必须弄清楚如何为新对象设置默认权限。
我只想使用一种易于使用的方法从系统上的任何位置对文件进行CRUD。
有人对此有想法吗?
非常感谢,达纳克。
编辑:将所有内容都设置为www-data:ww-data
并将我的shell用户添加到www-data
-group也是可以的,如果如上所述那样应用了权限。
对于遇到相同问题的每个人,并找到此问题:
在~[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
。