在 Ubuntu 和 Mac 之间共享文件——啊,帮帮忙!

在 Ubuntu 和 Mac 之间共享文件——啊,帮帮忙!

我在一台旧 HP 电脑上设置了一个 Ubuntu 服务器。我试图将它用作两台 MacBook 的文件和打印服务器。我的打印服务器已经正常工作(太好了!),但文件服务器让我头疼。我完全是 Ubuntu/Linux 菜鸟,但一直在疯狂阅读。

我在 ubuntu 机器上的外部硬盘上设置了一个名为 Primary Share Drive (PSD) 的共享文件夹(通过 Samba)。mac 可以看到共享文件夹,但当我单击该文件夹时,它显示

无法完成该操作,因为找不到“主共享驱动器”的原始项目。

我在内置硬盘上创建了一个不同的文件夹,它可以正常工作。我可以看到它并打开它。因此,我能看到的唯一区别是,如果我转到 PSD 文件夹右键菜单中的权限选项卡,它不允许我更改组和其他文件夹和文件的访问权限;它只是将其默认为无。我已将共享选项卡设置为共享文件夹。

任何帮助/见解都将非常棒!

答案1

我刚刚经历了你所经历的事情(尝试从 Mac 打开 Linux 服务器上的 Samba 共享文件夹时遇到的相同错误),我花了一段时间才弄清楚发生了什么。我对 Linux 也还不太熟悉,所以我希望其他论坛成员能迅速纠正我给出的错误建议。请原谅我回复的冗长:

我猜总统先生是对的,这是一个权限问题。也就是说,您的用户没有权限将该文件夹提供给其他人。因此,澄清一下,给您带来麻烦的文件夹位于外部硬盘驱动器上,而正常工作的文件夹位于您的内部硬盘驱动器上,对吗?我猜当您的外部驱动器安装时,您的用户没有获得更改该驱动器上任何其他人的权限的适当权限,因此您无法共享它。如果您不知道我在说什么权限,请查看以下内容:

https://help.ubuntu.com/community/FilePermissions

根据您的问题,我还假设您使用的是 GUI 而不是命令行来执行此操作?我解决这个问题的方法是使用命令行,如果您从未使用过它(尽管我假设您已经使用过),请查看教程,网上有很多。

您可以通过 cd 进入该驱动器并运行 ls -l 来查看谁对该驱动器具有哪些权限。如果我们有驱动器“myHardDrive”,并且 Ubuntu 自动挂载了它,则这些命令将如下所示:

cd /media/myHardDrive 
#the above is for Ubuntu 12.04, I think in later versions automount it here
cd /media/<yourUserName>/myHardDrive
ls -l

这将显示您和其他人是否有权读取和写入该驱动器(请参阅上面的链接以了解输出)。

我曾尝试使用 chmod 来更改权限,并尝试使用 chown,但没有任何效果。如果驱动器使用 FAT 文件系统,chown 命令至少不会起作用,因为不支持“拥有”。不确定为什么 chmod 不起作用。

对我而言,有效的方法是卸载驱动器,然后手动安装它,并在 mount 命令中指定权限。查看此页面以开始安装:https://help.ubuntu.com/community/Mount/USB

卸载驱动器,但将其插入。使用 mkdir 创建安装点(一个空文件夹)后,例如: sudo mkdir /media/myHardDrivesNewHome 小心地运行 . 找到驱动器的位置sudo parted -l。如果您输入错误的命令,“parted”可能会弄乱您的计算机,因此请务必小心。该“l”选项是字母“l”,如“list”中的“l”。我对一个驱动器的打印输出如下所示:

Disk /dev/sdb: 3001GB
Sector size (logical/physical): 4096B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name                  Flags
 1      24.6kB  315MB   315MB                EFI System Partition  boot
 2      316MB   2190GB  2190GB               AGENT
 3      2190GB  3001GB  810GB                FAT

我现在知道我的驱动器 FAT(在我的情况下,与分区 AGENT 和 EFI 等位于同一驱动器上的分区)位于 /dev/sdb3(AGENT 位于 /dev/sdb2 等)。但它没有安装,所以不要尝试从这里访问文件。

将驱动器安装到您之前创建的安装点,这次使用“umask”指定谁可以执行什么操作。man mount仔细阅读 mount 手册以理解此命令,并了解硬盘上的文件系统,以使命令适合您的情况。

sudo mount -t vfat -o users,umask=0000 /dev/sdb3 /media/myDrivesNewHome

请注意,umask=0000 赋予每个人对驱动器执行任何操作的能力,因此也许这里的其他人会给我们一个更安全的值,并且仍然适合您。我才刚刚开始了解它们的工作原理,暂时就到此为止。还请注意,我的驱动器有一个 FAT 文件系统(我用 指定了它-t vfat),如果您的驱动器不是,这些选项可能会有所不同。同样,所有内容都在手册页中。

最后,手动安装驱动器后,您将无法再单击驱动器来卸载它。要卸载,请执行以下操作sudo fusermount -u /media/myDrivesNewHome

我猜这样你就可以更改权限并在网络上共享它。如果我在这里给出了不好的建议,请大家评论。保重。

答案2

在 Ubuntu 中,在您的主目录中创建一个文件夹。

mkdir ~/MyShare.

右键单击文件夹转到特性并为用户和访客提供共享功能。

将外部驱动器安装到 MyShare

sudo mount -o users,umask=0000 /dev/<your device name> /home/User/MyShare

你现在应该可以在 Mac 上打开它了

相关内容