在WSL的Ubuntu系统中配置了LNMP环境,在使用过程中,遇到了一些权限错误信息,比如上传图片时,提示 chmod(): Operation not permitted
的警告信息。如果你在线安装主题或插件的过程中,也可能遇到这个问题。
chmod()
是对文件设置权限的函数,所以第一时间就认识到,应该是用户组或读写权限的问题。
下面简单说下具体的解决办法。
首先,我们需要知道的第一点是:军哥、宝塔的安装包配置的LNMP环境,网站运行目录都应该设置为 www
用户组。
我们在Ubuntu中输入命令:
sudo cat /etc/group
回车后,找到www
用户组的id
,比如我们的示例中为 1001
。也就是说我们必须确保网站目录要修改为 1001 的www用户组。
WSL每次重新启动都会自动挂载磁盘,我们先看下默认情况下磁盘挂载的属性:
mount -l
从上图可以看到,所有windows磁盘当前在id为1000的用户组下。
可喜的是,WSL允许我们通过 /etc/wsl.conf
文件设置自动挂载的默认属性。这个配置文件默认是不存在的,我们可以通过下面的命令操作:
sudo vim /etc/wsl.conf
输入你的密码就可以进入到这个新文件,按一下字母 i
键,进入到编辑模式,输入下面的内容:
注:请根据你自己系统的www用户id修改下面的id号
[automount]
enabled = true
root = /mnt/
options = "metadata,uid=1001,gid=1001"
mountFsTab = false
然后按一下 ESC
键退出编辑模式,英文状态下输入 :wq
回车,保存文件并退出。
然后关闭Ubuntu窗口,等待几分钟,或者直接重启电脑,然后重新运行Ubuntu,使用命令 mount -l
可以看到磁盘已经自动挂载,并且添加了metadata,uid=1001,gid=1001
属性。
从上图可以看到,我们的磁盘已经设置为www用户下,并且具备了 metadata 属性。然后我们测试再次上传图片,没有再遇到之前的报错了:
要了解更多信息:请阅读下面的文章:
- https://devblogs.microsoft.com/commandline/automatically-configuring-wsl/
- https://devblogs.microsoft.com/commandline/chmod-chown-wsl-improvements/
来源:
https://www.wpdaxue.com/wsl-chmod-operation-not-permitted.html