为了方便操作,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就是让任何人都可以操作我们的文件。

最新文章

  1. IOS7开发~Xcode5制作framework
  2. install intel c/c++ compiler
  3. C#抓取天气数据
  4. webpack练手项目之easySlide(三):commonChunks(转)
  5. 什么是XML
  6. Think Python - Chapter 10 - Lists
  7. Oracle系列之索引
  8. 关于IoCallDriver
  9. mysql数据导出权限问题
  10. SQL Server 内存泄露(memory leak)——游标导致的内存问题
  11. 使用Jasypt对SpringBoot配置文件加密(转)
  12. 学习 Spring (一) Spring 介绍
  13. MongoVUE 使用教程
  14. javascript权威指南第1章Js概述js语言核心
  15. 关于http以及aphace配置https
  16. Filebeat+Kafka+Logstash+ElasticSearch+Kibana 日志采集方案
  17. schtasks 命令使用
  18. 00-python语言介绍
  19. 转:修改ETM,用Ogre实现《天龙八部》地形与部分场景详解
  20. org.thymeleaf.exceptions.TemplateInputException: Error resolving template "/ template might not exist or might not be accessible by any of the configured

热门文章

  1. [options] 未与 -source 1.6 一起设置引导类路径
  2. Azure系列1.1.2 —— 用于 IntelliJ 的 Azure 工具包的登录说明
  3. [转帖]IP /TCP协议及握手过程和数据包格式中级详解
  4. oracle常用函数案例
  5. spring IOC源码分析(ApplicationContext)
  6. 使用getopts处理输入参数
  7. js auto hover button & html5 button autofocus
  8. layui内部使用jQuery
  9. Hotspot Java虚拟机的类加载器
  10. Javascript 实现复制(Copy)动作方法大全