windows下操作linux虚拟机映射网络驱动器中文件提示chmod权限不足解决方案
Posted saysmy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows下操作linux虚拟机映射网络驱动器中文件提示chmod权限不足解决方案相关的知识,希望对你有一定的参考价值。
为了方便操作,linux虚拟机会通过windows下连接网络驱动器的方式共享自己的文件,对于前端来说,我想把gulp放在windows磁盘,操作虚拟机中的php文件,一来节省虚拟机磁盘大小,二来解决虚拟机中用svn update和commit速度过慢问题。
但在实际操作中发生以下错误:
对虚拟机中文件增加chmod 777权限以及通过windows下gitbash对文件增加chmod777权限均不成功。
检查虚拟机samba设置分享文件夹的权限:
[share] path = /var/www available = yes browseable = no public = yes writable = yes
也是已经放开权限。
如果利用虚拟机共享文件夹的功能,它是可以把windows文件共享到虚拟机中进行操作,并不符合我们的逻辑
(设置共享文件夹的过程有些坑,如果有/mnt/hgfs目录,但hgfs下没有出现共享文件夹,通过 mount -t vmhgfs .host:/shared /mnt/hgfs 挂在共享文件并保证已安装 open-vm-dkms 或 open-vm-tools 时,一直提示 Error: cannot mount filesystem: No such device ,则有可能是你虚拟机操作系统的版本与vmwaretool的版本不兼容导致。)。
回来继续权限不足问题,最后通过再次对比gulp错误提示和linux文件权限,发现提示权限不足的文件的所有者在虚拟机中都是root:
其他文件都是nobody:nogroup。
所以我们尝试更改文件的所有者为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是一个普通用户,非特权用户。 使用nobody用户名的\'目的\'是,使任何人都可以登录系统,但是其 UID 和 GID 不提供任何特权,即该uid和gid只能访问人人皆可读写的文件。
4、其次,许多系统中都按惯例地默认创建一个nobody,尽量\'限制它的权限至最小\',当服务器向外服务时,可能会让client以nobody的身份登录。
5、nobody就是一个普通账户,因为默认登录shell是 \'/sbin/nologin\',所以这个用户是无法直接登录系统的,也就是黑客很难通过漏洞连接到你的服务器来做破坏。此外这个用户的权限也给配置的很低。因此有比较高的安全性。一切都只给最低权限。这就是nobody存在的意义。
对于我们这次操作,简而言之,使用nobody就是让任何人都可以操作我们的文件。
以上是关于windows下操作linux虚拟机映射网络驱动器中文件提示chmod权限不足解决方案的主要内容,如果未能解决你的问题,请参考以下文章