S. *_* N. 6 command-line root sudo text-editor editing
一次又一次,我需要编辑一些应该只能由 root 编辑的文件。
我非常喜欢在 GUI 文本编辑器中完成此操作,而不是使用 nano 或 vi 等命令行工具。是的,完全可以使用其中之一或类似的工具进行编辑,我只是对这个选项不满意,因为与使用 kate 或 gedit 相比,它很不方便(个人意见;如果你有相反,但我坚持我的)。
话虽这么说,我不想因为核选项而完全损害安全xhost si:localuser:root
。是否有任何中间立场解决方案(例如 sudo,不幸的是,在运行 GUI 内容时被故意削弱)?
van*_*ium 10
1. admin:// URI
在 Ubuntu 中,以 root 身份使用图形编辑器编辑系统文件的官方方法是使用 URI admin://
。例如,要编辑,请在终端上按+或/etc/fstab
后获得的运行对话框中发出以下命令:AltF2
gedit admin:///etc/fstab
Run Code Online (Sandbox Code Playgroud)
在较旧的 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>
Run Code Online (Sandbox Code Playgroud)
因此,仅当您明确想要使用图形编辑器时才更改环境。您可以创建别名或创建小脚本,以使用单个命令在图形编辑器中编辑系统文本文件。
3. 不鼓励:使用pkexec
这两个选项在任何时候都不会以 root 身份运行图形编辑器,这是首选。尽管如此,仍然可以使用 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 注释设置为非空值,则这两个变量将被保留;不过,这是不鼓励的,并且只能用于遗留程序。
归档时间: |
|
查看次数: |
21836 次 |
最近记录: |