我在 18.04 中需要相当于 gksu

pas*_*tim 36 root sudo gksu

我已经阅读了很多关于 gksu 从许多 Linux 版本中删除的主题,包括 Ubuntu 18.04。许多人表示 gksu 是一种令人憎恶的东西,任何用户都不需要使用类似的东西。我有 2 个例子,据我所知,我必须有一些东西可以让我以 root 身份运行(不仅仅是为了编辑文件)。

首先,只有在(GUI)命令上打开加密文件夹后,我才需要启动 mysql。这意味着让启动 mysql 服务的加密系统运行一个脚本。这必须以 root 身份完成,所以我在那个要求我输入密码的启动脚本中使用 gksu。我还能如何从 GUI 系统启动服务?

我也以root身份运行Ubuntu系统备份,否则很多系统文件无法备份。所以桌面文件使用 gksu 开始备份。

pkexec 看起来很复杂,需要策略文件。这是唯一的选择吗,如果是,为什么它更安全?

类似问题的其他答案似乎并没有解决人们现在 gksu 不再存在(或更难找到......)的个人问题。我认为来自非专家用户的此类问题将从更详细的答案中受益。我现在有一些,所以想回答我自己的问题。

Gab*_*val 37

我找到了这个命令

alias gksu='pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY'
Run Code Online (Sandbox Code Playgroud)

这个页面

运行别名命令后:

gksu /path/to/script.sh
Run Code Online (Sandbox Code Playgroud)

它会像往常一样要求您输入密码。

您需要将别名添加到末尾,~/.bashrc以便在重新启动时保持 gksu 命令的持久性。

  • 太棒了,非常感谢。这种在不提供替代方案的情况下杀死功能的做法导致浪费了太多时间,甚至不好笑。谢谢你解决这个问题,至少对我来说。 (3认同)

pas*_*tim 10

我知道据说在其他地方有答案,但我没有发现其中任何一个清晰和简单,足以让我解决这个问题。所以我在很多地方挖掘并想出了这个。我仍然不明白为什么 Linux 社区决定让我们这些简单的桌面用户过得如此艰难(我试图理解许多解释),但这就是生活。我几乎在所有事情上都使用 GUI,仅在必要时使用终端窗口。据我所知,使用 sudo 选项的解决方案对此没有帮助。所以我有.desktop文件和脚本来完成我经常使用的所有工作。

有两种基本的解决方案。

1.重新安装 gksu

这种解决方案可能会也可能不会持续。反 gksu 技术人员可能会找到一种方法来阻止它。但同时,.deblibgksu (x64)gksu (x64)下载 2 个文件。使用 gdebi 或您喜欢使用的任何安装工具安装 libgksu2,然后安装 gksu。这对我有用。

2. 使用 pkexec

作为(希望如此)长期解决方案,我设法让 pkexec 为我需要的工具工作。

  1. 从脚本启动服务。事实证明,既不需要 gksu 也不需要 pkexec。只是start service xyz,它会询问您的密码。

  2. 要编辑根文件,或以 root 身份打开 nautilus,请参阅如何使用 pkexec 而不是 gksu - Web Upd8 以 Root 身份运行 Gedit 和 Nautilus。这为 pkexec 提供了两个“polkit”文件,允许您使用包含pkexec gedit编辑根文件的脚本,对于 nautilus 也是如此。说明都在那个网页上。我现在使用“filemanager-actions”来提供右键单击操作来以 root 身份运行 gedit 或 nautilus。

  3. 我以 root 身份运行 deja-dup 以备份核心系统。我很少这样做,不包括/home(因为/home我经常做不需要 root 访问的备份)。为了让它工作,我为 gedit 复制了第 2 步中使用的文件,并为 deja-dup 编辑了它。我不太了解内容,但它确实适用于备份和恢复文件,pkexec backup在从 .desktop 文件启动的脚本中使用。我将这个新文件添加到/usr/share/polkit-1/actions包含:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD polkit Policy Configuration 1.0//EN" "http://www.freedesktop.org/software/polkit/policyconfig-1.dtd">
    
    <policyconfig>
      <icon_name>deja-dup</icon_name>
    
      <action id="org.gnome.DejaDup">
        <description gettext-domain="deja-dup">Backup</description>
        <message gettext-domain="deja-dup">Privileges are required to backup system files</message>
        <defaults>
        <allow_any>no</allow_any>
        <allow_inactive>auth_admin</allow_inactive>
        <allow_active>auth_admin</allow_active>
         </defaults>
        <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/deja-dup</annotate>
        <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
      </action>
    
    </policyconfig>
    
    Run Code Online (Sandbox Code Playgroud)

    请注意,此目录中还有另一个 deja-dup 文件,它声称有助于恢复文件,但我无法使其正常工作。这个新文件需要有一个唯一的名称,例如org.gnome.DejaDupNew.policy.

我现在在没有 gksu 的情况下运行。我会努力继续……


kar*_*rel 4

Nautilus Admin ( nautilus-admin ) 是 Nautilus 文件管理器的一个简单 Python 扩展,它向右键菜单添加了一些管理操作:

  • 以管理员身份打开:在以管理员 (root) 权限运行的新 Nautilus 窗口中打开文件夹。
  • 以管理员身份编辑:在以管理员 (root) 权限运行的 Gedit 窗口中打开文件。

要在所有当前支持的 Ubuntu 版本中安装 Nautilus Admin,请打开终端并输入:

sudo apt install nautilus-admin
Run Code Online (Sandbox Code Playgroud)

我已经在 18.04 中测试了除 Files 和 Gedit 之外的其他应用程序中 gksu 的所有替代方案,其中似乎工作最一致的是:

sudo -H应用程序名&>/dev/null

pkexec是 gksu 工作时的最佳替代品,因为它提供了更高的安全性,但它在不同的应用程序之间非常不一致(例如它不能与 Gedit 一起使用),并且可能导致某些应用程序崩溃。sudo -i管理起来不必要地困难,因为当您只需要成为 root 来运行单个命令时,它会在很长一段时间内将您的权限提升为 root。


归档时间:

查看次数:

43941 次

最近记录:

4 年,2 月 前