KDE 桌面环境中以 root 身份编辑文件

一直以来在 KDE 桌面环境下都可以通过使用 root 用户权限打开 kate/kwrite 等编辑器来编辑一些需要特定权限的文件,比如位于 /etc 目录下的系统全局配置文件。但是这样操作会带来很大的安全风险,因为 X11 非常不安全,也导致使用 root 帐户打开图形界面程序非常不安全。从 KDE 应用 17.04 开始,Kate 和 KWrite 已经不再允许使用 root 帐户运行了。

今年二月份的时候,Martin Graesslin 专门写了一篇博客介绍这一改变。相关源代码的更新在这里可以找到。关于这个问题的讨论可以在邮件列表中找到。具体的安全风险可以从这里的一点介绍看出来。一个演示代码在这里。

随着 KDE 应用 17.04.0 的正式发布,越来越多的发行版开始推送新版本的更新,也就导致很多人发现无法使用原来熟悉的方式去编辑需要额外权限的文本文件了。比如,有人喜欢运行 kdesu kate 来以 root 权限运行 Kate 文件编辑器应用,现在再运行的话,虽然还是会提示输入 root 帐户密码,但是输入后并没有以 root 身份运行的 Kate 出现。

当然,在开发者禁止用户以 root 权限运行 Kate 和 KWrite 的同时也是提供了替代方案的。当用户在命令行终端运行 sudo kate 的时候会有提示信息,

$ sudo kate
[sudo] password for root:
Executing Kate as root is not possible. To edit files as root use:
SUDO_EDITOR=kate sudoedit <file>

也就是说,可以使用 kate sudoedit 来代替。它与 sudo kate 的区别在于,这里 Kate 还是以当前用户的身份在运行,但是针对要编辑的文件提供了 root 读写权限。

当然也可以使用经典的 root 编辑工具 gedit 或者 leafpad 来编辑。或者直接使用命令行编辑工具 vim 等。

不过,对于 openSUSE Tumbleweed 来说,可能其开发者不太认同这种改变,所以他们在整合 KDE Applications 的时候决定恢复原来的执行方式。不过这个改变还没有正式合并到 openSUSE Tumbleweed 更新快照中。

与此类似的还有文件管理器 Dolphin。不过针对 Dolphin 的调整**已经**加入到 openSUSE Leap 42.3 和 Tumbleweed 中,所以即使是在 KDE Applications 17.04 以后,这两个平台的用户依旧可以使用 root 权限来运行 Dolphin。©

本文发表于水景一页。永久链接:<https://cnzhx.net/blog/edit-files-by-root-in-kde/>。转载请保留此信息及相应链接。

5 条关于 “KDE 桌面环境中以 root 身份编辑文件” 的评论

  1. 原来是专门关闭了啊,害的我小白搜了好久才看到博主的介绍。
    下载安装的时候纠结了好久是用kde(貌似推荐人挺多的)还是xfce(真心觉得启动很快啊)。现在觉得这个kde挺多问题的啊,搜狗输入法也是废了好多功夫才装成功,现在都有点闹不清楚是manjaro不好用还是kde不好用了。哎~

    • 说实话我只正式用过 KDE,而且只是在 openSUSE 上,其它的都是测试一下看看。觉得 KDE 到 Plasma 5 之后的界面很漂亮。至于打包的应用应该跟发行版有关吧,反正 KDE 的应用再加上 Firefox、FileZilla、Okular、LibreOffice 和 VirtualBox 基本上就能满足我的日常要求了。输入法用的 openSUSE 打包的 Google 拼音,可能是因为习惯了吧,对其它的没什么感觉。不管是发行版还是桌面,感觉不会有不出任何问题的,只要不特别影响日常使用就无所谓了。
      早十年的话还有劲折腾,现在没心力了。

  2. 從Twitter摸來這裡,多多指教。原來是這樣,之前我還想哪對不對開不了Kate。

  3. 引用通告: openSUSE Tumbleweed 更新 Linux 内核 4.18.5、KDE Applications 18.08.0 和 KDE Frameworks 5.49.0 等 | 水景一页

雁过留声,人过留名

您的电子邮箱地址不会被公开。 必填项已用 * 标注

特别提示:与当前文章主题无关的讨论相关但需要较多讨论求助信息请发布到水景一页讨论区的相应版块,谢谢您的理解与合作!请参考本站互助指南
您可以在评论中使用如下的 HTML 标记来辅助表达: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>