我正在通过共享文件夹将一个简单的文本文件复制到 VirtualBox 上的客户 Linux 系统,但复制之后,虚拟机似乎认为该文件是二进制文件(它显示为绿色ls
):
有什么方法可以把它转换回来吗?
Linux 发行版是 SANS SIFT,我相信它可以在 Ubuntu 14 上运行。
答案1
这种情况经常发生在我身上,通常是当我通过samba
服务器端管理的网络共享将 Windows 上生成的文本文件复制到我的 Linux 服务器上时。Hastur 在评论中说得对,Joe Sewell 在他的回答中也说得对:这只是设置了“可执行”权限标志。我的解决方案是:
chmod u-x,go+r filename
这使得我的用户无法执行该文件,但“组”和“其他人”可以读取该文件。此,go+r
部分是可选的,只要您是唯一需要访问该文件的人即可。
编辑:应该可以更改samba
这些权限的默认行为。我还没费心去弄清楚,但快速谷歌搜索后发现了这serverfault 帖子描述了我要尝试的第一件事:
我通常使用 SAMBA 的本机功能来管理共享上的权限和组。例如..
force user=user1 force group=sharedgroup create mask=775
您将在共享下指定这些设置。配置更改后务必重新加载 SAMBA,这可以通过 init 脚本完成。
根据该问题/答案的评论,有许多细微且具体的设置必须正确设置。恐怕我在这方面帮不上什么忙。
答案2
如果您已LS_COLORS
设置默认值(或至少是我在 RHEL 中看到的默认值),文件名的绿色并不意味着它是二进制文件,而只是表示设置了一个或多个可执行位。ls -l
应该会为您提供确认这一点所需的信息。请记住,在 Linux 中,shell 脚本是文本文件,必须可执行才能工作(除非您执行source
它们)。
答案3
我认为您看到了不同的属性:可执行属性x
,可能现在您已经有了-rwxrw-r--
。
为确保万无一失,请从您的客户系统尝试一下ls -l yourfile
,您将看到您的文件被显示在哪个属性上。
如果是可执行属性设置的问题(x
),chmod u-x
您可以使用它来修复该问题。
查看布莱恩的回答解决读取组属性的问题。
这取决于你如何安装共享文件夹,具有哪些属性,遗憾的是,下次您必须再次修复它。
如果你不能用其他方式做到这一点,你可以随时尝试修复它,按照建议手动安装它们,例如服务器故障并选择适当的选项。建议
在 Linux 客户机中,使用以下命令:
mount -t vboxsf [-o OPTIONS] sharename mountpoint
要在启动期间挂载共享文件夹,请将以下条目添加到
/etc/fstab
:
sharename mountpoint vboxsf defaults 0 0
参考文献和注释:
man mount
以及man fstab
如何通过以下方式挂载分区的所有选项命令行以及开机时间。- Virtualbox 共享文件夹手动的。
如果您想查看它是否是二进制文件
type yourfile
,请始终从您的客户系统使用来检查。