OS X客户端和Ubuntu服务器 – 客户端访问服务器上的文件的最佳途径?

我有一个运行Ubuntu的本地开发Web服务器。 我也有一个运行OS X 10.6的iMac,我使用客户端,是我的开发机器。

我目前在我的Ubuntu服务器上安装了Samba服务器。 我有所有的网站目录共享设置。

然后我用我的Mac和Coda通过他们的份额编辑文件。

这通常工作得很好,但我注意到我的Mac正在编写大量的资源fork ._filename文件。 我发现了以下关于这些文件:

这些文件是在不本地支持完整HFS文件特征(例如,ufs卷,Windows文件共享等)的卷上创build的。 当一个Mac文件被拷贝到这个卷中时,它的数据分叉被存储在文件的常规名字下,并且附加的HFS信息(资源分叉,types和创build者代码等等)被存储在第二个文件(AppleDouble格式)中,名称以“._”开头。 (就OS-X而言,这些文件当然是不可见的,但对其他操作系统来说则不可见;这有时会令人讨厌……)

有没有人知道在Mac客户端和Linux服务器之间共享文件的方式,这两种操作系统之间最容易兼容?

理想情况下,它需要支持HFS文件系统,以便不创build资源分支,并且还需要支持服务器和客户端之间的权限。

Netatalk是你的答案。

可能需要一些时间才能开始工作,因为OS X的新版本需要encryption的authentication。尽pipe如此,我已经做了两次。

从我自己的笔记 – 可能有点混乱:

afpd.conf必须包含- -tcp -noddp -uamlist uams_dhx2_passwd.so – uams_dhx2_passwd模块非常重要,以允许进行身份validation。

如果系统上没有必要的软件包,它将不会编译,只是默默无闻地编译它,确保它们在那里。

 $ ./configure --enable-redhat-sysv --prefix=/data/software/netatalk 

版本:2.2.3

AppleVolumes的股票是这样的:

 /data/shared/ ShareName allow:user1,user2 cnidscheme:dbd options:usedots,upriv dperm:0770 fperm:0660 

用户是系统用户,客户端的权限是用户身份validation的权限。

为了向networking播放,请使用Avahi。 这是afpd服务定义:

 <?xml version="1.0" standalone='no'?><!--*-nxml-*--> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <service-group> <name replace-wildcards="yes">%h</name> <service> <type>_afpovertcp._tcp</type> <port>548</port> </service> <service> <type>_device-info._tcp</type> <port>0</port> <txt-record>model=Xserve</txt-record> </service> </service-group> 

我希望这有点意义。 这是从我自己的笔记(我碰巧保留在减价),所以这不是真的意味着除了我以外的任何人。 我希望这对你来说足够合理。

您可以强制Samba使用该选项隐藏其他SMB客户端的这些点文件

 hide dot files = yes 

在你的smb.conf中。

这在隐藏文件(只要用户不告诉Windows资源pipe理器显示它们的隐藏文件)方面相当不错,但是这并不能解决根本问题,因为这对文件和相应的点文件倾向于在涉及非Mac OS系统时快速不同步。 在Linux或Windows中重命名,删除或移动文件时,会发生这种情况,并且点文件不会相应地更改。

为了在几年前真正解决这个问题,我不得不在后端切换到MacOS X服务器,但是还有其他一些缺点,我不确定我会再这样做。

在samba中使用“veto files”指令怎么样?

就像是:

 [sharename] ... other settings... Veto files = /*._* 

我从来没有使用过,但它应该工作:)

ref: http : //www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html#VETOFILES