以root权限运行kate

我正在使用Kubuntu 18.04,并且想要以root权限运行kate编辑器。使用"sudo kate"命令会显示"无法以root身份运行kate"的消息。我认为这太愚蠢了。我该如何绕过这个问题?
答案:只需使用普通的kate编辑文件,即使它是系统文件。您不需要root权限来编辑它,只需要在保存时输入root密码。当您保存系统文件时,系统会要求您输入root密码,然后保存操作就会进行。非常简单!

5你不能在不修改程序并重新编译的情况下这样做,据我所知。无论如何,你不需要以 root 权限运行 kate。只要你对文本文件具有读取权限,你就可以打开它,如果你进行任何更改,当你尝试保存时,会弹出一个对话框询问你的密码,并成功保存文件,然后 "root" 权限将保持到系统上正常的超时时间为止(我认为默认为 5 分钟)。 - TrailRider
GUI是用户拥有的,一个安全环境不应该允许另一个用户(root)访问用户的GUI。你的愚蠢是安全最佳实践,虽然X可能允许这样做(回溯到80年代初期,由于当时使用的CPU速度较慢,窗口来自其他机器),但其他更注重安全的环境(如Wayland等)将不会允许这样做。 - guiverc
1这解释了为什么他们禁用了以 root 权限运行 kate 的能力。https://cgit.kde.org/kate.git/commit/?id=9adcebd3c2e476c8a32e9b455cc99f46b0e12a7e - mchid
2有很多非保姆编辑,他们和凯特一样甚至更好。 - Stephen Boston
5因为比尔·盖茨的“我们告诉你可以或不能做什么”的心态(我开始觉得Linux被前微软程序员接管了),所以我刚切换到了GEDIT,而不是Kate——太糟糕了,我更喜欢Kate。我正在重新思考整个KDE的范式。我是一位居住在家里的前系统管理员,他们试图告诉我如何使用我的电脑——我可不这么认为! - jwzumwalt
1请将您的编辑内容作为实际的“答案”发布。 - Greenonline
附加问题:如果你希望Kate作为替代恶心的vim/emacs(我是一个老的vim/emacs用户,而且我已经戒掉了,谢谢)在$EDITOR中使用,你需要以root身份启动Kate,但不要成为root,而是使用当前用户的GUI,如果它不可用,则使用例如tilde - anon
2个回答

我觉得我可能安装了一个更新版本的kate。我正在运行18.04,而且我收到以下消息:
Executing Kate as root is not possible. To edit files as root use:
SUDO_EDITOR=kate sudoedit <file>

看起来你可以使用以下命令以 root 权限编辑文件:
SUDO_EDITOR=kate sudoedit <file>

然而,您将无法在任何不属于root所有的目录中以root身份编辑文件。因此,在使用sudoedit运行kate时,您还必须指定一个文件名。
你可以通过在你的~/.bashrc文件中添加以下行来轻松设置sudokate的别名:
alias sudokate='SUDO_EDITOR=kate sudoedit'

然后,运行以下命令来加载你的~/.bashrc文件:
source ~/.bashrc

此外,不要忘记在所有其他打开的终端中引用您的~/.bashrc文件以应用更改。
现在,您可以运行sudokate命令来编辑由root拥有的目录中的文件。

来源


你可以使用Kate 19.04.3(在Kubuntu 19.10中可用)或在已安装kubuntu-backports ppa的Kubuntu 19.04中编辑系统文件。
只需在Kate中打开要编辑的文件,进行编辑,然后点击Ctrl+S。一个PolicyKit窗口将出现,提示您输入密码。输入密码并点击确定即可。

editing system files in Kate


1这是一个很好的解决方案,而且适用于大多数环境(我认为)。它通过避免尝试以某种方式使用root权限运行kate来避免错误路径。其基本思想非常简单:只需使用普通的kate编辑系统文件,尝试保存并在要求时提供root密码。 - Paul A.
那又怎样,如果你真的以root身份登录呢? - Joshua
@Joshua 你不应该担心。遵循良好的安全实践,就不会遇到这个问题。 - gronostaj
@gronostaj:在控制台上以root身份登录比在X会话中提升进程要安全得多。即使是polkit也可能被劫持。 - Joshua
@Joshua 抱歉,我不明白你的意思。为什么以root身份登录(执行某些任务)比以root身份运行选择性进程更安全?这与X有什么关系?你所说的“甚至polkit也可能被劫持”是什么意思? - gronostaj
@gronostaj:一个libc木马可以劫持exec()来执行其他操作,比如给你一个假的登录提示并将真实密码传递给它自己调用的sudo。但是一个libc木马无法通过Ctrl-Alt-Fn跟随root登录和startx进行劫持。 - Joshua
@Joshua 首先,libc木马能否在没有root权限的情况下安装? - gronostaj
@gronostaj: 是的。只需要写入.Xsession并设置LD_LIBRARY_PATHLD_PRELOAD即可。 - Joshua
当PolicyKit无法打开此提示时,您可以采取哪些措施?如何启用它? - Akito