Nautilus 无法挂载 Active Directory 共享

Nautilus 无法挂载 Active Directory 共享

Nautilus 中的“连接到服务器”无法连接到我们的 Active Directory 共享:我收到无限循环的用户/密码挑战。我可以使用“sudo mount”和“smbclient”访问相同的共享,因此这似乎是 Nautilus 的问题。

背景:刚刚从 12.04 升级到 16.04。我曾使用 Centrify 加入我们的 Active Directory,但现在选择了“裸机”方法,因此遵循了 SSSD 和 Active Directory 安装指南。“sudo mount”和“smbclient”以及经过 AD 身份验证的用户的登录运行良好,因此 AD 加入似乎已成功。

我尝试过的事情:

  • 谷歌搜索。很多听起来类似的问题,但没有适合我的解决方案。
  • 查看 /var/log/auth.log:没有任何内容。
  • 查看 /var/log/syslog:只有一个条目“密码对话框已取消”。 (我确实看到了。)
  • 根据“调试 GNOME”说明,使用调试选项运行 Nautilus。(仅供参考:必须先终止正在运行的 Nautilus:“nautilus -q”。)无调试输出。
  • 仔细阅读“调试 Samba”说明。没有帮助。

附加信息:

  • Samba 版本:

    libnss-winbind 2:4.3.11+dfsg-0ubuntu0.16.04.1 samba install ok installed
    libpam-winbind 2:4.3.11+dfsg-0ubuntu0.16.04.1 samba install ok installed
    libsmbclient 2:4.3.11+dfsg-0ubuntu0.16.04.1 samba install ok installed
    libwbclient0 2:4.3.11+dfsg-0ubuntu0.16.04.1 samba install ok installed
    python-samba 2:4.3.11+dfsg-0ubuntu0.16.04.1 samba install ok installed
    samba 2:4.3.11+dfsg-0ubuntu0.16.04.1  install ok installed
    samba-common 2:4.3.11+dfsg-0ubuntu0.16.04.1 samba install ok installed
    samba-common-bin 2:4.3.11+dfsg-0ubuntu0.16.04.1 samba install ok installed
    samba-dsdb-modules 2:4.3.11+dfsg-0ubuntu0.16.04.1 samba install ok installed
    samba-libs 2:4.3.11+dfsg-0ubuntu0.16.04.1 samba install ok installed
    samba-vfs-modules 2:4.3.11+dfsg-0ubuntu0.16.04.1 samba install ok installed
    smbclient 2:4.3.11+dfsg-0ubuntu0.16.04.1 samba install ok installed
    winbind 2:4.3.11+dfsg-0ubuntu0.16.04.1 samba install ok installed
    
  • 远程服务器信息:

    OS=[Windows Server 2012 R2 Standard 9600] Server=[Windows Server 2012 R2 Standard 6.3]
    

编辑

看来我是GVfs 中一个众所周知且长期存在的 bug。有很多方法可以绕过这些问题,这篇文章很好地总结了。但是,这些方法对我都不起作用,我猜是因为我的 smb.conf 指定了“security = ads”(Active Directory Server)。无论如何,黑客依赖于启用弱身份验证方案,这是一个坏主意。

答案1

在我找到更好的解决方案之前,我决定放弃在 Nautilus 中安装网络共享,而是使用脚本进行标准安装。如果有人感兴趣,我会附上脚本:

    #!/bin/bash
    echo Enter network user:
    echo -n "Name [$USER]: "
    read USR
    if [ "$USR" = "" ]; then
        USR="$USER"
    fi
    echo -n "Password: "
    read -s PWD
    echo

    SERVER="your server name here"
    SHARES="your share names here"

    for SHR in $SHARES; do
        ERR=$(sudo mount -t cifs -o rw,username=$USR,password=$PWD,uid=$USER //$SERVER/$SHR ~/Shares/$SHR 2>&1)
        if [ "$ERR" = "" ]; then
            ERR="OK"
        fi
        echo $SHR: $ERR
    done

相关内容