权限被拒绝从 Samba 共享运行 Python 脚本

权限被拒绝从 Samba 共享运行 Python 脚本

我正在尝试从 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 导出目录,首先,在服务器和客户端上安装autofs5nfs-common(autofs 用于自动挂载/卸载共享,如下所述)。在服务器上,安装nfs-kernel-server

然后(所有这些命令都应该以 root 身份运行):

  1. 创建您将导出的目录,例如 /nfs_shares:

    sudo mkdir /nfs_shares
    
  2. 设置导出规则。在服务器上,编辑/etc/exports并添加以下行:

    /nfs_shares       192.168.0.XX(rw,sync,no_subtree_check)
    

    其中 192.168.0.XX 是客户端(您的 Ubuntu 桌面)的 IP。

  3. 将您要导出的目录挂载(绑定)到此新位置。首先将以下行添加到 /etc/fstab:

    /path/to/exported/homeshare /nfs_shares bind bind 0
    

    然后,挂载它:

    mount /nfs_shares
    
  4. 在客户端上,创建将挂载共享的目录(例如 /mnt/homeshare):

    mkdir /mnt/homeshare
    

    此时您应该能够手动挂载共享。在客户端上:

    mount -t nfs 192.168.0.XX:/nfs_shares/ /mnt/homeshare
    
  5. 现在,让我们实现自动化。在客户端上,创建一个名为 /etc/auto.master 的文件,其中包含以下行(将 SERVERNAME 更改为您想要的任何名称):

    +auto.master
    /mnt/homeshare  /etc/auto.SERVERNAME   --timeout 60 --ghost
    
  6. 在客户端上,创建一个名为 /etc/auto.SERVERNAME 的文件(将 SERVERNAME 更改为您在步骤 4 中使用的任何内容),其中包含以下行(您可以使用服务器的网络名称或 IP,如果是静态的,则将 XXs 更改为服务器的 IP):

    homeshare  -rw,soft,intr,bg,rsize=8192,wsize=8192 192.168.XX.XX:/nfs_shares/homeshare
    
  7. 运行它!在服务器上运行,service nfs-kernel-server restart在客户端上运行service nfs-common restart; service autofs restart

因此,这使得共享自动挂载。如果它处于非活动状态一分钟,它将在您尝试访问它时立即卸载并重新挂载(例如ls /mnt/homeshare)。请确保按您需要的方式设置权限(修改模式) 用于您使用的目录。

答案2

如果您不太关心性能和一些怪癖,也可以选择使用SSHFS

使用 Nautilus 非常简单。转到FileConnect to Server...选择SSH类型,填写详细信息,就完成了。共享将安装在 下/run/user/james/gvfs/。要卸载它,请转到ComputerNautilus,右键单击共享并选择Unmount

相关内容