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

  • 相关阅读:
    idea中如何配置tomcat
    onselectstart属性解决双击出现的蓝色区域
    (二十二)数组的最大值和最小值
    (二十一)数组的初始化
    (二十)两种数据类型的对比
    (十九)数组的内存分配
    (十八)数组概述
    (十六)函数的重载
    (十七)自定义函数
    (十五)函数的入栈和出栈
  • 原文地址:https://www.cnblogs.com/saysmy/p/9272957.html
Copyright © 2020-2023  润新知