如何在没有命令行的情况下获取 GUI sudo 密码提示?

如何在没有命令行的情况下获取 GUI sudo 密码提示?

目前,对于所有需要 root 访问权限的命令,我都必须在命令行中输入它们。

当需要 sudo 时,我希望 GUI 提示我输入密码,而不是必须从命令行输入命令。

有什么方法可以启用此功能?以前 Ubuntu 桌面的一个版本就有此功能。

我现在正在运行的这个 Ubuntu 版本是我从服务器安装升级而来的。

我要补充的是,我的用户帐户已添加到 sudo 组。因此我可以运行诸如sudo gedit或之类的命令sudo apt-get,但无法在 Ubuntu 软件中心安装软件。

答案1

总结:尝试安装policykit-1policykit-1-gnome包。

您可能需要 polkit (又名 PolicyKit)。

Ubuntu 中的大多数图形系统管理实用程序(包括软件中心)通常都可以在没有sudo或类似程序的情况下运行。您只需像运行任何程序一样运行它们即可。

当需要执行需要 root 权限的任务时,他们会使用波尔基特执行所需的操作。polkit 是一种独立于 sudo 的机制,允许管理员以 root 身份执行操作。它安装在桌面 Ubuntu 系统上,但默认情况下不是 Ubuntu Server 安装的一部分。

因此,软件中心的正常行为是,您可以简单地调用它software-center,它不会提示您进行身份验证,但是当您告诉它安装或删除软件时,它会(以图形方式)提示您进行身份验证。

从你的描述来看,你的系统一开始是一个没有 GUI 的 Ubuntu Server 系统,然后你安装了 GUI。可能是policykit-1安装 policykit-1policykit-1-gnome安装 policykit-1-gnome软件包尚未安装。如果您安装了,polkit 很可能会开始为软件中心和其他此类实用程序工作。

sudo apt-get update
sudo apt-get install policykit-1 policykit-1-gnome

然后你就可以运行:

software-center

(或者按照您安装的桌面环境所提供的图形方式选择软件中心。)

如果如果你想要一个功能齐全的 Ubuntu 桌面系统,我建议安装你想要将系统变成的 Ubuntu 的任何“风格”的元包。基本上,如果你想要一个普通的 Ubuntu 桌面系统,请安装Ubuntu 桌面安装 ubuntu-desktop

sudo apt-get update
sudo apt-get install ubuntu-desktop

这应该可以弥补在服务器系统上安装更精简的 GUI 所带来的各种缺陷,例如没有 polkit。另一方面,如果您更喜欢更精简的 GUI,您可以直接安装那些 polkit 包。

有关详细信息,请参阅For more information, see如何运行带有 GUI 的 Ubuntu Server?

sudo具有图形验证。

如果你确实需要以 root 身份运行命令但得到一个图形身份验证对话框,那么你要找的是gksudo或者gksu)由堪萨斯州立大学安装 gksu包。它是 的图形前端sudo

通常gksudo用于以 root 身份(或启动这些应用程序的用户之外的其他用户)运行图形应用程序。但您也可以使用它来运行非图形命令——前提是这些命令可以使用 运行sudo

您可以gksudo从终端运行,但这不是必须的。您可以从Alt+ F2(运行命令)对话框运行它,也可以将其放在文件Exec=的行中.desktop(或以任何其他方式运行图形程序)。

gksudo请注意,即使您是从终端运行图形应用程序,也应该考虑以 root 身份运行它们,因为像图形应用程序在sudo ...哪里这样的命令...实际上可能会破坏运行它们的非 root 用户的每个应用程序的配置。 (幸运的是,这是可以修复的。) sudo gedit尤其臭名昭著。

有关图形应用程序的问题sudo以及如何解决的详细信息,请参见:

还有基于 polkit 的图形方式...用于非图形命令。

gksudo运行图形和非图形程序都很好。你应该使用它。

但另一种方法是使用 polkit 代替,sudo并且只适用于非图形化程序,是pkexec

例如,如果您运行pkexec touch /root/foo.txt,系统将提示您显示一个图形身份验证对话框,如果身份验证成功,touch /root/foo.txt则运行 ,创建(或清新)文件夹foo.txt/root

  • pkexec如果无法创建图形对话框,则将使用非图形对话框,需要终端。但是,如果您通过图形 shell 或桌面环境提供的工具运行它,则不太可能发生这种情况。
  • 为什么pkexec只适用于-图形程序?实际上,它也可以运行图形程序,但前提是 polkit 已特别配置为允许它 - 通常不会这样做。请参阅man pkexec(和上游版本,附有屏幕截图),这个答案那个答案如果您有兴趣的话,可以查看更多详细信息。

sudo对阵波尔基特(一些技术细节,仅当你感兴趣时)

新的gksu/gksudo将使用 polkit 而不是sudo来完成其工作,尽管这个版本还没有被广泛采用。我主要提出它来推荐README源代码中的文件(由 Gustavo Noronha Silva 撰写),其中解释了和 polkit 之间的重要区别sudo。简要引用一下:

PolicyKit 解决了应用程序需要更高权限的问题,它提供了一些功能,让用户能够验证自己的身份,并让应用程序验证身份验证和授权信息。应用程序必须以这样的方式构建,即所有特权操作都由(最好是)小型 D-Bus 服务完成,该服务由非特权代码控制。执行的所有“操作”都需要适当的授权,这通过 Policykit 来处理。

4.为什么要维护 gksu?

因此,这实际上使得 gksu 变得没有必要,因为应用程序不再需要以特权用户身份运行,用户身份验证由 PolicyKit 的 Auth Agent 完成。但应用程序需要重构才能采用这种新结构,在某些情况下,您确实需要以 root 身份运行程序。

我认为,您所处的状况主要存在以下问题:

  • 软件中心旨在使用 polkit 来提升权限,因此只需要以 root 身份执行特定操作。为此,它需要 polkit,但您的系统上缺少(或损坏)了它。
  • 因为它是为使用 polkit 而设计的,所以没有预制的启动器来以 root 身份启动软件中心。大多数时候,polkit 消除了以 root 身份运行图形管理工具的需要。
  • 但有时您确实需要以 root 身份运行图形程序。在这种情况下,您可以使用gksu/ gksudo
    (...最终可能会在后台使用 polkit——但gksudo目前 Ubuntu 中的 是使用 的传统版本sudo)。

答案2

一种方便的方法是创建一个专用.desktop文件,或将您的命令添加到现有文件中,通过 GUI (gksu) 询问您的密码。在下面的示例中,我将使用 sudo 权限运行 Gedit 和软件中心的命令添加到 Gedit 启动器。您需要安装gksu才能使用此设置:sudo apt-get install gksu

  1. 复制 Gedit .desktop file in/usr/share/applications/~/.local/share/applications to

    cp /usr/share/applications/gedit.desktop ~/.local/share/applications/gedit.desktop
    

    并打开它进行编辑(将其拖到打开的 gedit 窗口上)

  2. 查找行:Actions=Window;Document;

  3. 将命令的名称添加到行中(这些不是您在界面中看到的名称,仅用于文件中的内部引用)

    Actions=Window;Document;gedit;Ubuntu Software Center;
    
  4. 在文件底部添加相应部分:

    [Desktop Action gedit]
    Name=Gedit  (with gksu)
    Exec=gksudo gedit
    OnlyShowIn=Unity;
    
    [Desktop Action Ubuntu Software Center]
    Name=Ubuntu Software Center (with gksu)
    Exec=gksudo /usr/bin/software-center
    OnlyShowIn=Unity;
    
  5. 关闭文件并将其拖到启动器上

现在您可以使用 sudo 权限运行 gedit 和软件中心:

在此处输入图片描述

在此处输入图片描述

答案3

gksu 已被弃用。

它已从 Ubuntu 18.04 以及 Debian 和其他较新的 Linux 发行版中删除。如果您使用短语“Ubuntu man gksu”进行网络搜索,您会发现没有可用的 18.04 版本。以下是替代方案:

替代[0]:使用“-H”

sudo -H nautilus

替代方案[1]: 使用 "admin://"

gedit admin:///etc/udev/rules.d/somefile.rules

替代方案[2]: 使用“pkexec”

pkexec gedit

来源:https://askubuntu.com/a/1192202/71820

相关内容