这一次,我需要编辑一些应该只由 root 编辑的文件。
我更喜欢在 GUI 文本编辑器中执行此操作,而不是使用 nano 或 vi 等命令行工具。是的,完全有可能使用其中一个或类似的方法进行编辑,我只是对这个选项不满意,因为与使用 kate 或 gedit 相比它很不方便(个人意见;如果你有相反,但我坚持我的)。
话虽如此,我不想用核选项完全损害安全xhost si:localuser:root
。是否有任何中间解决方案(如 sudo ,不幸的是,在运行 GUI 的东西时故意被削弱了)?
1. admin:// URI
在 Ubuntu 中,使用图形编辑器以 root 身份编辑系统文件的官方方法是使用
admin://
URI。例如,要编辑,请在终端上按+或/etc/fstab
后获得的运行对话框中发出以下命令:AltF2在较旧的 Ubuntu 版本(20.10 之前)中,第一次执行此操作时,您需要连续两次提供用户密码。这已在 20.10 中修复。
当然,您的用户需要属于 root 组才能编辑系统文件。
2.使用
sudoedit
一种适用于具有任何编辑器的任何桌面环境的方法是使用
sudoedit
. 设置 SUDO_EDITOR 环境变量以指向图形编辑器的二进制文件,例如:export SUDO_EDITOR="/usr/bin/gedit"
. 然后,您可以使用该命令sudoedit <file>
或sudo -e <file>
在图形编辑器中打开系统文件。与 admin:// URI 一样,这将创建一个临时副本,您可以作为普通用户对其进行编辑。关闭编辑器后,修改后的临时副本将复制回系统文件。这实际上可以组合在一个命令中:
因此,只有当您明确想要使用图形编辑器时,才会更改环境。您可以创建一个别名或创建一个小脚本,以使用单个命令在图形编辑器中编辑系统文本文件。
3. 气馁:使用
pkexec
这两个选项在任何时候都不会以 root 身份运行您的图形编辑器,这是首选。尽管如此,还是可以使用 root 运行图形编辑器
pkexec
。您可以安装 PolicyKit 文件,但也可以使用一些环境变量来运行它。对于nautilus
用户,该软件包nautilus-admin
为 gedit 安装了 PolicyKit 文件,并提供了一个右键单击菜单选项来启动具有 root 权限nautilus
的文本文件。但是,不鼓励gedit
使用这些选项(其中图形应用程序以 root 身份运行) :man pkexec
以下命令有效,无需安装任何东西:
~/.bash_aliases
为简化起见,您可以通过将以下内容放入文件中来创建别名:然后(在新终端中,为了重新读取
~/.bashrc
)您可以使用以下命令: