19.04 中的 system-config-samba 发生了什么?

Wil*_*sch 5 samba file-sharing

我再也看不到这个应用程序了。这是一个简单的工具,我一直用它来进行一些基本的 samba 文件共享。我该如何取回它?

我可以使用其他产品吗?

$ sudo apt search system-config-samba
[sudo] password for wvb: 
Sorting... Done
Full Text Search... Done
Run Code Online (Sandbox Code Playgroud)

Mor*_*us1 4

它去了所有不受支持的软件所在的地方:https://bugs.launchpad.net/ubuntu/+source/system-config-samba/+bug/1740419

此外,该应用程序的逻辑也已经多年没有更新了——它有一个选项(将安全性设置为“共享”),实际上会禁止 samba 运行。它应该在几年前就被更新或删除。

说到几年前就应该删除的软件包,我发现 gadmin-samba 仍然在存储库中。我建议不要安装它。这在 samba 的第 2 版中是最先进的,但现在我们已经到了第 4 版,它实际上具有破坏性。如果您运行它并遇到问题,没有人会帮助您调试它,因为没有人记得 Samba V2 是如何工作的。

您可以使用 nautilus-share,它允许您从文件管理器创建共享,或使用文本编辑器直接修改 /etc/samba/smb.conf。


zpa*_*win 1

TL;DR - 我建议学习仅编辑 smb.conf 文件;这并不难。但如果您不在乎并想尝试一下,以下步骤可能会有所帮助。如果你真的很懒并且只想尝试运行我的 linux-mint 脚本- 我强烈建议首先进行备份(例如使用时移或任何你使用的全系统备份)。需要明确的是:我不建议盲目地从网络上运行脚本。我建议使用我的脚本作为参考,但我知道有些人不会听;我通常只针对 Mint 测试我的脚本,因此特别是较新版本的 Ubuntu 可能会出现我尚未遇到的问题。如果你找到了,我不介意你在我的 github 上提交一个问题,其中包含“system-config-samba bad on ubuntu xx.xx”等;如果有时间的话我可能会看看,但这对我来说也不是优先考虑的事情。截至 2021 年 5 月 24 日,这些步骤已在虚拟机中针对 Ubuntu 21.04 进行了验证,并且在 LM-20(Ubuntu 20.04 基础)上也运行良好。另请注意,如果您只是下载脚本并尝试运行它,它会给您一个错误,因为它有一些依赖项(有关说明,请参阅脚本文件夹中的 README 文件)。

2021 年 5 月 24 日更新:我在 github 上收到一份报告,称我在 wget 语句中发布的一些原始链接已停止工作。我的脚本以及这篇文章已更新为使用新链接(感谢用户N0rbert此处的注释)。手动安装已经在运行 Ubuntu 21.04 的 Virtualbox 中进行了测试,我能够安装 system-config-samba 并启动并运行它。有关更多详细信息,请参阅链接的 github 问题页面。我不建议继续使用 system-config-samba bc A) 我认为 python2 是一个安全问题,因为它不再接收更新,B) 它已经过时了,并且从未设计过在您的设置不安全时警告您,C ) smb.conf 有很好的文档记录并且相当容易学习。但我知道有些人可能有他们的理由,我并不是来反对的。所以请考虑自己被警告:-)

对于任何希望在 Ubuntu 19/Ubuntu 20/etc 下运行 system-config-samba 的人,您需要做 4 件事才能使其像其他普通程序一样工作。

还要预先警告的是,即使你让它工作,它也可能与一些较新的东西(samba3/samba4/等)发生冲突。我个人没有见过这个,但我保留它只是为了帮助一些希望能够编辑共享点并且不太精通文本文件的用户,它对我来说很好地填补了这个用例。


1.它不再位于中央仓库中。这可以通过下载适当的旧版 deb 文件并手动安装来解决。我再次强烈建议您在应用这些更改之前**进行时移备份

mkdir ~/Downloads/system-config-samba-debs
cd ~/Downloads/system-config-samba-debs

# If on Ubuntu 20.10+, it sounds like you will need some additional
# depends for libcairo2 which was apparently removed in Ubuntu 20.10
# credit here goes to user N0bert for figuring this out on fslint post
wget http://archive.ubuntu.com/ubuntu/pool/main/libf/libffi/libffi7_3.3-4_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/p/pygobject-2/python-gobject-2_2.28.6-14ubuntu1_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/p/pycairo/python-cairo_1.16.2-2ubuntu2_amd64.deb

# Needed for all versions starting from Ubuntu 19.10
wget http://old-releases.ubuntu.com/ubuntu/pool/universe/p/pygtk/python-gtk2_2.24.0-6_amd64.deb
wget http://old-releases.ubuntu.com/ubuntu/pool/universe/p/pygtk/python-glade2_2.24.0-6_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/libu/libuser/python-libuser_0.62~dfsg-0.1ubuntu2_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/s/system-config-samba/system-config-samba_1.2.63-0ubuntu6_all.deb

# once all deb files are downloaded, to install running the following
# Note I got a couple warnings about:
#   'Failed to preset unit' and
#   'N: Download is performed unsandboxed as root as file'
# I just ignored these; they didn't matter for getting SCS running.
# And if you care about security, why would you install python2 ?!
sudo apt-get install -y ./*.deb

# if it worked, you should be able to find it somewhere on $PATH
which system-config-samba
  /usr/sbin/system-config-samba
Run Code Online (Sandbox Code Playgroud)

2. 安装后,libuser.conf bug将阻止其启动。这可以通过简单地运行来解决sudo touch /etc/libuser.conf


3. 该应用程序需要 root 权限(这是有道理的,因为它编辑 /etc/samba/smb.conf)。*.desktop 快捷方式仍然使用旧的 gksu 命令,该命令在 Ubuntu 18 中已被删除。我们将在此处修复该命令,因为编辑快捷方式既快速又简单,但请注意,在您执行此操作之前,快捷方式仍然会被破坏。我们在下一步中添加了Polkit例外。

您需要编辑的快捷方式位于/usr/share/applications/system-config-samba.desktop。我们将把该行替换Exec=gksu system-config-sambaExec=/usr/bin/pkexec --user root /usr/sbin/system-config-samba

您可以使用 vim/nano 或通过运行 sed 手动执行此操作:

sudo sed -Ei 's|^Exec=.*$|Exec=/usr/bin/pkexec --user root /usr/sbin/system-config-samba|g' /usr/share/applications/system-config-samba.desktop
Run Code Online (Sandbox Code Playgroud)

4. 最后,您需要创建一个 polkit 例外,以便快捷方式可以工作,因为如前所述,该程序使用特权文件 (/etc/samba/smb.conf),并且旧的 gksu 方法早已被使用已弃用,支持 polkit。添加例外允许您从菜单运行程序并仅获得图形身份验证提示。

如果您以前从未弄乱过与 polkit 相关的任何内容,则很可能您甚至不会拥有该文件(全新安装后它不存在)。

首先,要检查是否有任何现有的 polkit 异常,您可以使用lsorcat并仅检查文件。

$ cat /usr/share/polkit-1/actions/org.freedesktop.policykit.pkexec.policy
cat: /usr/share/polkit-1/actions/org.freedesktop.policykit.pkexec.policy: No such file or directory
Run Code Online (Sandbox Code Playgroud)

如果您得到“没有这样的文件或目录”,那么您可以创建一个空白文件并输入内容(如下所示)。或者你可以从我的 git 存储库中复制一个:

wget -q https://raw.githubusercontent.com/zpangwin/linux-setup-scripts/master/mint-20/deprecated-system-config-samba/usr/share/polkit-1/actions/org.freedesktop.policykit.pkexec.policy

sudo mv org.freedesktop.policykit.pkexec.policy /usr/share/polkit-1/actions/org.freedesktop.policykit.pkexec.policy
Run Code Online (Sandbox Code Playgroud)

无论您复制我的还是创建新的,请确保您的权限和所有权设置正确:

sudo chown root:root /usr/share/polkit-1/actions/org.freedesktop.policykit.pkexec.policy;
sudo chmod 644 /usr/share/polkit-1/actions/org.freedesktop.policykit.pkexec.policy;
Run Code Online (Sandbox Code Playgroud)

如果您确实有一些现有定义,则需要能够编辑 XML。由于大多数用户不会遇到这种情况,因此您将需要自己实际学习它,但接下来的几句话应该可以让大多数人通过。首先使用 进行备份sudo cp -a /usr/share/polkit-1/actions/org.freedesktop.policykit.pkexec.policy /usr/share/polkit-1/actions/org.freedesktop.policykit.pkexec.policy.bak。然后,您需要以 root身份手动编辑该文件,以避免覆盖现有的 polkit 定义。如果您不知道如何做到这一点,这应该是一个线索,表明安装已弃用的软件包不是一个明智的决定(但从时移恢复很容易......您确实做了备份,对吧?)。无论如何,您需要复制下面的部分示例文本 - 但只是从<action></action>(包括开始/结束操作标签)。然后将其粘贴到文件中最后一个现有定义之间</action></policyconfig>.

示例 POLKIT 文件 (org.freedesktop.policykit.pkexec.policy):

<!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN" "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>
  <action id="org.freedesktop.policykit.pkexec.run-system-config-samba">
    <description>Run Samba Config</description>
    <message>Authentication is required to run Samba Config</message>
    <icon_name>system-config-samba</icon_name>
    <defaults>
      <allow_any>no</allow_any>
      <allow_inactive>no</allow_inactive>
      <allow_active>auth_admin_keep</allow_active>
    </defaults>
    <annotate key="org.freedesktop.policykit.exec.path">/usr/sbin/system-config-samba</annotate>
    <annotate key="org.freedesktop.policykit.exec.allow_gui">TRUE</annotate>
  </action>
</policyconfig>
Run Code Online (Sandbox Code Playgroud)

  • @mikewhatever 我们的主题页面说有关其他 Linux 发行版的*问题*是题外话,但它并没有说答案必须在 Ubuntu 上进行测试。大多数答案根本没有提到它们已经过测试。在最坏的情况下,答案可能在 Ubuntu 上不起作用,因此是*错误的*,但错误的答案不应被标记为删除(请参阅[为什么以及如何删除某些答案](https://askubuntu.com/help/deleted-答案))。不过,请参阅 [meta](https://meta.askubuntu.com/questions/19206/answers-that-arent-about-ubuntu-explicitly-about-another-distro) 了解此主题的当前讨论。 (3认同)