在具有 root 权限的 Ubuntu 18.04 上使用图形应用程序

在具有 root 权限的 Ubuntu 18.04 上使用图形应用程序

自从我升级到 Ubuntu 18.04 以来,我无法再执行以下操作:

sudo su -

gparted

因为现在 root 无法访问 Display:0 并且我还没有找到解决方法。

有人知道如何解决这个问题吗?

使用 gparted 还好,但是我使用其他一些程序时,它根本不起作用,因为我没有其他程序可以做同样的事情。我不想以 root 身份启动所有程序,因为我知道如何做到这一点。

答案1

kdesudogsudo(我认为),还有其他一些。

或者您可以将其复制到~/bin/xsudo

#!/bin/bash

inner() {
    su  - "$user" -c "xauth list" |
        grep "$(echo "$display" |
                cut -d ':' -f 2 |
                cut -d '.' -f 1 |
                sed -e s/^/:/ ) " |
        xargs -n 3 xauth add &&
        "$@"
}

if [ "$1" = "---innermode" ]
then
    shift
    user="$1"
    display="$2"
    shift 2
    inner "$@"
else
    self="$0"
    sudo "${self}" ---innermode "$USER" "$DISPLAY" "$@"
fi

答案2

您可以使用pkexecroot 身份运行 GUI 应用程序。

$ pkexec gparted

或者:

$ pkexec bash
# gparted

pkexec使用 PolicyKit 进行授权,因此您可能需要安装一个 PolicyKit 以允许您的用户使用pkexec.看手册页有关授权的更多详细信息。

答案3

如果您以具有 sudo 权限的普通用户身份登录 X 会话,则只需打开终端并使用sudo gparted即可正常工作。

su命令的行为有所不同,虽然它确实允许您成为另一个用户或以另一个用户身份运行特定命令,但它确实阻止连接到您的 X 服务器。

相关内容