使用 Samba 将文件从 Ubuntu Mate 带到 Macintosh,但一些文本文件会变成可执行文件

使用 Samba 将文件从 Ubuntu Mate 带到 Macintosh,但一些文本文件会变成可执行文件

我不确定这是否是最好的 Stack Exchange,但问题涉及 Mac、Linux 和 Samba。

我有一台新买的 Apple Macintosh 笔记本电脑(MacOS 10.15.7 (Catalina)),并且我已设置 Samba(对 /etc/samba/smb.conf 进行了相当标准的更改),以便使我的 Ubuntu Mate (UM) 笔记本电脑上的文件可供我的 Mac 使用。我的网络中没有 Windows 机器。

可以将文件从 UM 复制到 Mac。但是我在 UM 上有很多没有扩展名的文档。如果这些文件是纯文本文件,那么在到达 Mac 时它们将被视为可执行程序。

(其他文件类型,例如 png,无论是否有扩展名,都会被正确处理。)

例如,我在 UM 上名为 test 的文件夹中有两个文本文件。命令 ls 给出:

$ ls -al
total 16
drwxrwxr-x 2 bob bob 4096 May 12 22:23 .
drwxr-xr-x 3 bob bob 4096 May 12 22:22 ..
-rw-rw-r-- 1 bob bob   24 May 12 22:23 test file
-rw-rw-r-- 1 bob bob   24 May 12 22:23 test file.txt

属性显示“允许作为程序执行文件”已关闭且 SELinux 上下文:未知

在 Mac 上从 UM 复制后:

% ls -al
total 16
drwxr-xr-x  4 bob  staff  128 May 13 00:23 .
drwxr-xr-x  7 bob  staff  224 May 13 00:23 ..
-rwx------  1 bob  staff   24 May 12 22:23 test file
-rwx------@ 1 bob  staff   24 May 12 22:23 test file.txt

获取“测试文件”的信息时显示它是 Unix 可执行文件;在 Finder 中双击它时在新终端窗口中失败。获取“测试文件.txt”的信息时显示它是纯文本文档;双击它会在 TextEdit 中打开它。

我可以通过右键单击文件、选择“打开方式...”并找到 TextEdit 应用程序在 TextEdit 中打开“测试文件”,但这有点繁琐。

在 TextEdit 中指定始终打开的可执行文件有什么缺点吗?或者,有没有办法让 Mac 自动知道来自 Samba 的这些文件是纯文本?

答案1

我找到了一种方法,可以让 Mac 自动知道来自 Samba 的这些文件是纯文本。维基条目https://wiki.samba.org/index.php/Configure_Samba_to_Work_Better_with_Mac_OS_X 建议在 Ubuntu Mate 机器上的 /etc/samba/smb.conf 文件中添加以下几行代码。(后跟$ sudo service smbd restart)这些行插入到 [global] 部分的开头。

min protocol = SMB2
vfs objects = fruit streams_xattr  
fruit:metadata = stream
fruit:model = MacSamba
fruit:posix_rename = yes 
fruit:veto_appledouble = no
fruit:wipe_intentionally_left_blank_rfork = yes 
fruit:delete_empty_adfiles = yes 

我几乎不懂这个,但它似乎有效。当文件到达 Mac 时,它们具有与原始文件相同的权限。.txt 文件的 Finder 类型为“纯文本”,没有扩展名的文本文件的类型为“TextEdit”。

(我之前已将 Mac 设置为始终使用 TextEdit 打开“Unix 可执行文件”类型的文件。我不知道这是否有任何区别。)

相关内容