AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1308369
Accepted
S. N.
S. N.
Asked: 2021-01-16 11:12:15 +0800 CST2021-01-16 11:12:15 +0800 CST 2021-01-16 11:12:15 +0800 CST

如何以 root 身份在 GUI 文本编辑器中编辑文件?

  • 772

这一次,我需要编辑一些应该只由 root 编辑的文件。

我更喜欢在 GUI 文本编辑器中执行此操作,而不是使用 nano 或 vi 等命令行工具。是的,完全有可能使用其中一个或类似的方法进行编辑,我只是​​对这个选项不满意,因为与使用 kate 或 gedit 相比它很不方便(个人意见;如果你有相反,但我坚持我的)。

话虽如此,我不想用核选项完全损害安全xhost si:localuser:root。是否有任何中间解决方案(如 sudo ,不幸的是,在运行 GUI 的东西时故意被削弱了)?

command-line
  • 2 2 个回答
  • 6360 Views

2 个回答

  • Voted
  1. Best Answer
    vanadium
    2021-01-16T11:55:12+08:002021-01-16T11:55:12+08:00

    1. admin:// URI

    在 Ubuntu 中,使用图形编辑器以 root 身份编辑系统文件的官方方法是使用admin://URI。例如,要编辑,请在终端上按+或/etc/fstab后获得的运行对话框中发出以下命令:AltF2

    gedit admin:///etc/fstab
    

    在较旧的 Ubuntu 版本(20.10 之前)中,第一次执行此操作时,您需要连续两次提供用户密码。这已在 20.10 中修复。

    当然,您的用户需要属于 root 组才能编辑系统文件。

    2.使用sudoedit

    一种适用于具有任何编辑器的任何桌面环境的方法是使用sudoedit. 设置 SUDO_EDITOR 环境变量以指向图形编辑器的二进制文件,例如:export SUDO_EDITOR="/usr/bin/gedit". 然后,您可以使用该命令sudoedit <file>或sudo -e <file>在图形编辑器中打开系统文件。与 admin:// URI 一样,这将创建一个临时副本,您可以作为普通用户对其进行编辑。关闭编辑器后,修改后的临时副本将复制回系统文件。

    这实际上可以组合在一个命令中:

    env SUDO_EDITOR="/usr/bin/gedit" sudoedit <file>
    

    因此,只有当您明确想要使用图形编辑器时,才会更改环境。您可以创建一个别名或创建一个小脚本,以使用单个命令在图形编辑器中编辑系统文本文件。

    3. 气馁:使用pkexec

    这两个选项在任何时候都不会以 root 身份运行您的图形编辑器,这是首选。尽管如此,还是可以使用 root 运行图形编辑器pkexec。您可以安装 PolicyKit 文件,但也可以使用一些环境变量来运行它。对于nautilus用户,该软件包nautilus-admin为 gedit 安装了 PolicyKit 文件,并提供了一个右键单击菜单选项来启动具有 root 权限nautilus的文本文件。但是,不鼓励gedit使用这些选项(其中图形应用程序以 root 身份运行) :man pkexec

    因此,pkexec 将不允许您以其他用户身份运行 X11 应用程序,因为未设置 $DISPLAY 和 $XAUTHORITY 环境变量。如果操作上的 org.freedesktop.policykit.exec.allow_gui 注释设置为非空值,则将保留这两个变量;但是,这是不鼓励的,并且应该只用于遗留程序。

    • 6
  2. raj
    2021-01-22T09:07:42+08:002021-01-22T09:07:42+08:00

    以下命令有效,无需安装任何东西:

    pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY gedit <filename>
    

    ~/.bash_aliases为简化起见,您可以通过将以下内容放入文件中来创建别名:

    alias editroot='pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY gedit'
    

    然后(在新终端中,为了重新读取~/.bashrc)您可以使用以下命令:

    editroot <filename>
    
    • 0

相关问题

  • 如何从命令行仅安装安全更新?关于如何管理更新的一些提示

  • 如何从命令行刻录双层 dvd iso

  • 如何从命令行判断机器是否需要重新启动?

  • 文件权限如何工作?文件权限用户和组

  • 如何在 Vim 中启用全彩支持?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve