windows下操作linux虚拟机映射网络驱动器中文件提示chmod权限不足解决方案

为了方便在windows环境中操作linux虚拟机中的文件,您选择将gulp工具放在windows磁盘上,并通过网络驱动器映射的方式来编辑虚拟机中的php文件。这种方法旨在节省虚拟机的磁盘空间并加速svn的更新和提交操作。然而,在实际操作中遇到了权限不足的错误。

windows下操作linux虚拟机映射网络驱动器中文件提示chmod权限不足解决方案尝试通过在虚拟机中对文件增加chmod 777权限,以及在Windows下的git bash中对文件增加chmod 777权限都未能解决问题。

接下来,检查了虚拟机的Samba设置,确保共享文件夹的权限已经放开:

[share] path = /var/www available = yes browseable = no public = yes writable = yes

尽管权限已经放开,问题依然存在。

使用虚拟机的共享文件夹功能可以将Windows的文件共享到虚拟机中进行操作,但这并不符合您的需求。此外,在设置共享文件夹的过程中遇到了问题,如果/mnt/hgfs目录存在,但共享文件夹未显示,通过mount -t vmhgfs .host:/shared /mnt/hgfs挂载共享文件并确保已安装open-vm-dkms或open-vm-tools,却一直提示Error: cannot mount Filesystem: No such device,这可能是由于虚拟机操作系统版本与VMware Tools版本不兼容导致的。

回到权限不足的问题,通过对比gulp的错误提示和linux文件权限,发现提示权限不足的文件的所有者在虚拟机中都是root,而其他文件的所有者是nobody:nogroup。

windows下操作linux虚拟机映射网络驱动器中文件提示chmod权限不足解决方案因此,尝试将文件的所有者更改为nobody:nogroup:

chown nobody:nogroup * -R

更改成功后,再次运行gulp,文件权限问题得到了解决。

那么,nobody:nogroup到底是什么?

  1. Windows系统在安装后会自动建立一些用户账户,Linux系统中也有一些在系统安装后就有的用户账户,类似于Windows中的内置账户。

  2. 这些账户用于完成特定任务,例如nobody和ftp等。我们访问www.php-note.com的网页程序时,服务器会让客户以nobody身份登录(相当于Windows中的匿名账户);匿名访问FTP时,会使用ftp或nobody用户。

  3. nobody是一个普通用户,非特权用户。其目的在于允许任何人登录系统,但其UID和GID不提供任何特权,只能访问人人皆可读写的文件。

  4. 许多系统中默认创建一个nobody用户,并尽量限制其权限至最小。当服务器向外提供服务时,可能会让客户端以nobody身份登录。

  5. nobody是一个普通账户,默认登录shell是/sbin/nologin,因此无法直接登录系统,提高了安全性。其权限配置得非常低,遵循最小权限原则。

简而言之,使用nobody用户可以让任何人操作我们的文件,从而解决了权限不足的问题。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享