我正在尝试从 Fedora 17 桌面在 Ubuntu 12.04 桌面上安装 samba 共享。
我可以毫无问题地创建、编辑和删除文件,但是当我尝试在共享上运行 python 脚本时,我收到权限被拒绝错误。
我尝试以 root 身份挂载并使用 sudo 执行以下命令:
mount -t cifs //192.168.0.3/homeshare netbook -o user=james
mount -t cifs -o exec //192.168.0.3/homeshare netbook -o user=james
文件权限后面有一个 . 但我不知道这是什么意思
-rw-rw-r--. 1 james james 31804 Aug 14 18:20 cronlog.txt
-rwxrwxr-x. 1 james james 666 Aug 16 17:49 current.py
如何在 Fedora 17 中挂载此共享并运行脚本?
答案1
我不会使用 Samba 连接两台 Linux 机器。Samba 旨在让 Linux/Unix 机器与 Windows 进行通信,反之亦然。NFS对于两台 Linux 机器来说要好得多。您可能可以调整 Samba 设置以允许您执行脚本,但使用本机 Linux 方法确实会更好。在我的系统上,我使用 Samba(用于我家庭网络上的 Windows)和 NFS(用于 Linux 和 OSX)导出了相同的目录。
要使用 nfs 导出目录,首先,在服务器和客户端上安装autofs5
和nfs-common
(autofs 用于自动挂载/卸载共享,如下所述)。在服务器上,安装nfs-kernel-server
。
然后(所有这些命令都应该以 root 身份运行):
创建您将导出的目录,例如 /nfs_shares:
sudo mkdir /nfs_shares
设置导出规则。在服务器上,编辑
/etc/exports
并添加以下行:/nfs_shares 192.168.0.XX(rw,sync,no_subtree_check)
其中 192.168.0.XX 是客户端(您的 Ubuntu 桌面)的 IP。
将您要导出的目录挂载(绑定)到此新位置。首先将以下行添加到 /etc/fstab:
/path/to/exported/homeshare /nfs_shares bind bind 0
然后,挂载它:
mount /nfs_shares
在客户端上,创建将挂载共享的目录(例如 /mnt/homeshare):
mkdir /mnt/homeshare
此时您应该能够手动挂载共享。在客户端上:
mount -t nfs 192.168.0.XX:/nfs_shares/ /mnt/homeshare
现在,让我们实现自动化。在客户端上,创建一个名为 /etc/auto.master 的文件,其中包含以下行(将 SERVERNAME 更改为您想要的任何名称):
+auto.master /mnt/homeshare /etc/auto.SERVERNAME --timeout 60 --ghost
在客户端上,创建一个名为 /etc/auto.SERVERNAME 的文件(将 SERVERNAME 更改为您在步骤 4 中使用的任何内容),其中包含以下行(您可以使用服务器的网络名称或 IP,如果是静态的,则将 XXs 更改为服务器的 IP):
homeshare -rw,soft,intr,bg,rsize=8192,wsize=8192 192.168.XX.XX:/nfs_shares/homeshare
运行它!在服务器上运行,
service nfs-kernel-server restart
在客户端上运行service nfs-common restart; service autofs restart
因此,这使得共享自动挂载。如果它处于非活动状态一分钟,它将在您尝试访问它时立即卸载并重新挂载(例如ls /mnt/homeshare
)。请确保按您需要的方式设置权限(修改模式) 用于您使用的目录。
答案2
如果您不太关心性能和一些怪癖,也可以选择使用SSHFS
。
使用 Nautilus 非常简单。转到File
,Connect to Server...
选择SSH
类型,填写详细信息,就完成了。共享将安装在 下/run/user/james/gvfs/
。要卸载它,请转到Computer
Nautilus,右键单击共享并选择Unmount
。