Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 创建符号链接:协议错误_Linux_Windows_Virtual Machine_File Permissions_Symlink - Fatal编程技术网

Linux 创建符号链接:协议错误

Linux 创建符号链接:协议错误,linux,windows,virtual-machine,file-permissions,symlink,Linux,Windows,Virtual Machine,File Permissions,Symlink,我已经在我的虚拟机上创建了linux(Centos)。当我使用ssh连接到它并尝试创建符号链接(在具有完全访问权限的共享文件夹上)时: 我得到一个错误: ln: creating symbolic link `myFolder': Protocol error 有什么原因或解决办法吗?这是主机文件系统的问题。检查主机文件夹上的权限是否足够,主机文件系统是否支持符号链接 在命令提示符上单击鼠标右键并“以管理员身份运行”(或使用任何程序使这些符号链接需要以管理员身份运行)。以下是virtualbo

我已经在我的虚拟机上创建了linux(Centos)。当我使用ssh连接到它并尝试创建符号链接(在具有完全访问权限的共享文件夹上)时:

我得到一个错误:

ln: creating symbolic link `myFolder': Protocol error

有什么原因或解决办法吗?

这是主机文件系统的问题。检查主机文件夹上的权限是否足够,主机文件系统是否支持符号链接

在命令提示符上单击鼠标右键并“以管理员身份运行”(或使用任何程序使这些符号链接需要以管理员身份运行)。

以下是virtualbox.org上的解决方案: (注意:在控制台中以管理权限执行“whoami/priv”)

我对这个bug做了一些Windows研究

如果您的用户是管理员类型(而不是标准 帐户),如果没有 UAC提示

如果您有一个标准用户帐户(或者如果您愿意切换 您的帐户符合标准,并创建一个单独的管理员帐户) 解决方案存在。但是,您需要管理员权限才能 完成以下几个步骤(用户不一定需要 账户)

  • 运行本地安全策略(Win+R,键入“secpol.msc”,确认UAC)。然后导航到“本地策略->用户权限分配”
  • 找到名为“创建符号链接”的权限并双击它。将您的用户添加到具有此属性的对象列表中 许可。或者您可以添加“用户”组。注销并登录。你 可以通过在控制台中运行来检查成功:

    whoami /priv
    
    如果您看到特权secreateSymbolicClinkPrivilege已启用,则 做得很好

  • 确保您的用户能够正确访问主机系统上的共享文件夹

  • 如前所述,执行

    VBoxManage setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1
    
    在控制台中的C:\Program Files\VirtualBox文件夹中。别忘了 用虚拟机的名称替换虚拟机名称,并与共享虚拟机名称 共享文件夹的名称(显示在VM设置中)

  • 你完了

  • 如果您碰巧拥有一个“较小”版本的windows(例如7 Home),您没有“secpol.msc”实用程序。看见 寻求帮助

    查找cmd.exe文件。 右键单击cmd.exe。 选择“以管理员身份运行”菜单选项。
    它应该工作得很好。

    据我所知,Windows VirtualBox主机不支持链接(来自)

    从4.0版开始,VirtualBox共享文件夹还支持 符号链接(符号链接),在以下条件下:

    主机操作系统必须支持符号链接(即Mac、Linux或 Solaris主机是必需的)

    目前只有Linux和Solaris来宾添加支持符号链接

    出于安全原因,不允许来宾操作系统通过创建符号链接 违约如果您相信来宾操作系统不会滥用该功能,那么 可以通过以下方式为“sharename”创建符号链接:

    VBoxManage setextradata“虚拟机名称” VBOxiternal2/SharedFolderEnableSymLinksCreate/sharename 1


    默认情况下,VirtualBox虚拟机禁止创建符号链接。

    Oracle VM VirtualBox共享文件夹在以下条件下支持符号链接:

    • 主机操作系统必须支持符号链接。例如,需要Mac OS X、Linux或Oracle Solaris主机
    • 目前只有Linux和Oracle Solaris来宾添加支持符号链接
    • 出于安全原因,默认情况下不允许来宾操作系统创建符号链接
    要为共享文件夹创建符号链接,您应该执行以下操作:

  • 在主机上运行此命令(其中{VM_name}是VM的名称,{share_folder_name}是共享目录的名称):
  • $VBoxManage setextradata“{VM_name}”vboxiternal2/sharedfolderEnablesymlinksCreate/{share_folder_name}1
    
    就我而言,它看起来像:

    $VBoxManage setextradata“ubuntu16”VBoxInternal2/SharedFolderEnableSymLinksCreate/shared 1
    
  • 重新启动虚拟机
  • 您可以在此处找到更多信息:


    基本上,您需要再次告诉VirtualBox启用符号链接。这是完整的解决方案

    把这个放在你的流浪汉档案里

    config.vm.provider“virtualbox”do | v|
    v、 自定义[“setextradata”,:id,“VBoxInternal2/SharedFolderEnableSymLinksCreate/Folder_Name”,“1”]
    结束
    
    我建议注释掉任何同步文件夹,并让默认值。/(在主机上)在/vagrant(在来宾上)同步。这将确保您的共享文件夹(文件夹名称)名称始终是vagrant,如本文所述。另外,您也不会遇到ssh的问题

    如果重新启动后symlink协议错误再次出现或仍然存在,请运行

    VBoxManage setextradata“VM_Name”vboxiternal2/SharedFolderEnableSymLinksCreate/Folder_Name 1
    游荡的停顿
    流浪汉
    流浪汉
    
    通常,VBoxManage位于C:\Program Files\Oracle\VirtualBox\

    通过进入/漫游并运行来验证symlink的工作情况

    touch test.txt&&ln-s test.txt test1.txt
    

    PS:我在Windows Home上试过,它的安全设置访问能力有限

    主机系统是Windows 7。有什么解决方案可以启用它吗?糟糕的解决方案是使用mklink在windows 7中创建符号链接。示例:mklink/D myFolder path/folder/Example
    协议错误消息来自于哪个API/层?您用来启动VM、VBox或vagrant的任何应用程序或。。。您必须以管理员身份运行应用程序。实际上,在windows上运行的虚拟机中,创建符号链接时出现协议错误是很常见的。以管理员身份运行shell通常可以纠正这个问题。我也遇到过类似的问题,但当您以管理员身份运行VM时,您将能够创建符号链接。有关更多信息,请看:你能解释一下你需要做什么来“正确的c”吗
    
    VBoxManage setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1