如何使用 Kate 编辑器编辑系统文件?

如何使用 Kate 编辑器编辑系统文件?

如果我尝试使用它sudo kate来编辑系统文件,我会收到以下消息:

无法以 root 身份执行 Kate。

那么我该如何编辑系统文件?

我提出这个问题是为了自己回答。据我所知,所有涉及 gksudo 的建议都比不上我提出的解决方案:只需以非 root 用户身份编辑文件,完成后保存,然后提供 root 密码。

答案1

继续编辑文件,不要带sudo。完成后,照常保存。您将收到提示,要求输入系统密码。输入密码,您就完成了。(不过,这可能不适用于某些 Ubuntu 版本。)

答案2

尝试一下SUDO_EDITOR=kate sudo -e /path/to/the/file。这将使 sudo 将文件复制到临时目录,您的编辑器将以非特权用户的身份调用,然后当编辑器返回时(即关闭时),它将被复制到任何特权位置。

它还适用于任何其他编辑器。sudo -e也可以拼写sudoedit

答案3

您可以尝试以下代码并将其放入 bash 脚本中。动机是gksudo使用 Debian Buster 上的 Wayland。我现在还没有使用 Ubuntu 20.04,所以我没有测试它。

#!/usr/bin/env bash

#
# Enable root access to x-windows system.
#
# Motivation: Trying to run a graphical application as root via su, sudo in a 
# Wayland session (e.g. GParted or Gedit), will fail. Apps which use polkit to
# request administrator permissions for just certain operations and only when 
# needed are not affected (they are not started as root right away). 
# [1] https://bugzilla.redhat.com/show_bug.cgi?id=1274451
#
# Based on a Reddit comment.
# [2] https://www.reddit.com/r/Fedora/comments/5eb633/solution_running_graphical_app_with_sudo_in/

if (( $# != 1 )); then
    echo "Illegal number of parameters."
    echo
    echo "Usage: wsudo [command]"
    exit 1
fi

for cmd in sudo xhost; do
    if ! type -P $cmd &>/dev/null; then
        echo "$cmd it's not installed. Aborting." >&2
        exit 1
    fi
done

xhost +SI:localuser:root
sudo $1
#disable root access after application terminates
xhost -SI:localuser:root
#print access status to allow verification that root access was removed
xhost

相关内容