刚刚安装了全新的 Ubuntu 16.04 和 Samba。我想与 Windows 机器和匿名用户共享一个驱动器。
我注意到的第一件事是 Samba 配置 GUI(system-config-samba)不再可用。
我继续使用 CLI 和 Nano,编辑 /etc/samba/smb.conf,并使用了许多遇到同样问题的其他人提供的各种信息。
我已将其放置在 Windows 计算机可以看到计算机和共享文件夹的位置,但任何打开共享的尝试都会导致“拒绝访问”。我希望共享是匿名的,但我也尝试使用 Ubuntu 用户和密码登录,但仍然“拒绝访问”。
在我尝试了几个小时后,在了解所有细节之前,GUI 配置发生了什么?如果它只是换了个名字,我会先试一下。
更新:事实证明,在 16.04 Unity 中配置共享还有一种更简单的方法。只需右键单击要共享的文件夹并选择“本地网络共享”。从那里,将打开文件夹共享对话框以配置共享。
不幸的是它不起作用(远程用户身份验证总是失败),但至少界面在那里。如果我能找到更多信息,我会报告的。
答案1
为了获得 GUI 来配置 Samba,我安装了 system-config-samba。它崩溃了。我四处寻找了一下……对我有用的是在 /etc 中创建缺少的文件 libuser.conf。所以我在终端中输入:
sudo touch /etc/libuser.conf
答案2
只需右键单击主文件夹中的文件夹并启用本地共享,它就会提供安装 samba 文件。之后,在终端运行(其中sudo smbpasswd -a username
username
是现有的 UNIX 用户名)并设置密码并重新启动。
答案3
安装 system-config-samba 不是问题。我使用 synaptic 安装了它 - 只需单击“标记为安装”和“应用”即可。问题是,一旦安装,它就不起作用了。首先,它不会显示在启动器、经典菜单或系统设置中。(至少,我找不到它。)其次,从命令行运行时,它会生成以下错误消息:
duncant@linuxbox:~$ system-config-samba0
Traceback (most recent call last):
File "/usr/sbin/system-config-samba", line 45, in <module>
mainWindow.MainWindow(debug_flag)
File "/usr/share/system-config-samba/mainWindow.py", line 116, in __init__
self.samba_user_data = sambaUserData.SambaUserData(self)
File "/usr/share/system-config-samba/sambaUserData.py", line 46, in __init__
self.readSmbPasswords()
File "/usr/share/system-config-samba/sambaUserData.py", line 63, in readSmbPasswords
raise RuntimeError, (_("You do not have permission to execute %s." % pdbeditcmd))
RuntimeError: You do not have permission to execute /usr/bin/pdbedit
使用 sudo 权限运行时也不起作用:
duncant@linuxbox:~$ sudo system-config-samba
[sudo] password for duncant:
(system-config-samba:15161): IBUS-WARNING **: The owner of /home/duncant/.config/ibus/bus is not root!
Traceback (most recent call last):
File "/usr/sbin/system-config-samba", line 45, in <module>
mainWindow.MainWindow(debug_flag)
File "/usr/share/system-config-samba/mainWindow.py", line 121, in __init__
self.basic_preferences_win = basicPreferencesWin.BasicPreferencesWin(self, self.xml, self.samba_data, self.samba_backend, self.main_window)
File "/usr/share/system-config-samba/basicPreferencesWin.py", line 97, in __init__
self.admin = libuser.admin()
SystemError: could not open configuration file `/etc/libuser.conf': No such file or directory
但是,我只需在 ubuntu 文件管理器中右键单击想要共享的文件夹,选择“属性”,然后选择“本地网络共享”,就可以使 samba 文件共享正常工作。
这对于开放访客访问非常有效,但对于经过身份验证的访问,您还需要运行 smbpasswd 命令。
因此,总而言之,system-config-samba 似乎无法在 ubuntu 16.04 上“开箱即用”。
答案4
我知道这个有点老了,但如果有人有兴趣让 system-samba-config gui 工作,那么我写了一个脚本来实现这一点。你可以在 github 上找到它这里
2021-May-06 更新:目前用于安装此弃用库的 wget url 存在问题。您可以关注该问题这里; 看起来 python-gtk2 / python-glade2 维护者可能已经撤下了适用于 Ubuntu 18.04 的 deb 文件版本之一,我还没有时间做太多分析。我会先在我的 github 上更新,如果我记得的话,我会在这里更新。如果我的答案的反对票吓到你,那完全取决于你。就我个人而言,我认为这与我的帖子中包含“Mint”一词有关——我见过一些狂热粉丝Ubuntu 的用户没有仔细阅读规则,没有注意到只有问题必须严格适用于 Ubuntu,并且与发行版无关或衍生发行版答案只要相关,都是允许的……并且不止一次被这类人投了反对票。不过,还是由你决定。
就我个人而言,我建议花时间学习如何编辑/etc/samba/smb.conf
。你不需要那么频繁地编辑它,也不需要安装弃用软件的解决方法。但我认为很少有人会谷歌搜索这个问题,所以我只是回答这个问题 :-)
主要问题是 system-samba-config 正在使用 gksu。我的安装脚本创建了一个包装脚本,然后向 policykit 添加了一个例外,以便 gui 可以启动。最后,它更新 *.desktop 快捷方式,以便它使用包装脚本启动,而不是尝试仍然使用 gksu。
我在 Mint ~~19.3(基于 Ubuntu 18.04)~~ Mint 20 上使用它,但我的脚本不包含任何 Mint 特有的内容,甚至不包含 Cinnamon DE 特有的内容。Policykit 在 Ubuntu 和 Mint 上都使用。许多 DE/distos 都使用桌面文件,我相信 /usr/share/applications 也是 *.desktop 文件所在的位置。即使由于某种奇怪的原因它在 Ubuntu 上不起作用,对于真正想要它的人来说,它也是一个不错的参考。只要 system-samba-config 在存储库中可用,它就应该可以工作。我很确定我也曾经在 Mint 18.3(基于 Ubuntu 16.04)上使用过它。
使用我的安装脚本:
git clone https://github.com/zpangwin/linux-setup-scripts.git;
find linux-setup-scripts -type f -iname '*.sh' -exec chmod a+rx "{}" \;;
cd linux-setup-scripts/mint-20.x/apps/deprecated-system-config-samba
./install-scripts-with-policykit-exception.sh