当我在谷歌搜索“gksu gedit”时,最热门的条目之一(如何以 root 身份运行 gedit 和 nautilus) 建议不宜gksu
使用以下方式:
gksu 自 2009 年以来一直没有更新,现在也不推荐使用了。事实上,Ubuntu 不再默认安装 gksu(尽管许多人可能安装了它,因为有些应用程序仍然依赖它),甚至可能在某个时候被完全删除。
AskUbuntu 的链接(为什么 gksu 不再默认安装?) 建议pkexec
应该使用,但没有提供清晰简洁的步骤来做到这一点。
如何在gsu
支持和gedit
的新包装器 shell 脚本中使用 pkexec nautilus
?
我觉得最合适的包装脚本gsu
是因为我的“肌肉记忆”就是一直打字gksu
,而我不想必须打字pkexec
。
此外,我希望那些烦人的gtk
警告信息消失。我还希望终端提示立即返回,而不是等待编辑器或文件管理器结束。
非盟重复:我搜索了许多问答,但没有一个要求(或提供如何)为gsu
包装脚本提供完整的解决方案来调用pkexec
和安装所有必要的策略工具包并摆脱讨厌的 gtk 警告并立即获得终端提示……所有答案都在一个答案中。
答案1
pkexec
在使用之前gedit
,nautilus
您需要复制 polkit 规则以支持它们。这将在 Ubuntu 17.04 中自动完成,但同时您需要wget
它们。
Nautilus 政策工具包
wget https://raw.githubusercontent.com/hotice/webupd8/master/org.gnome.nautilus.policy -O /tmp/org.gnome.nautilus.policy
sudo cp /tmp/org.gnome.nautilus.policy /usr/share/polkit-1/actions/
Gedit 策略工具包
wget https://raw.githubusercontent.com/hotice/webupd8/master/org.gnome.gedit.policy -O /tmp/org.gnome.gedit.policy
sudo cp /tmp/org.gnome.gedit.policy /usr/share/polkit-1/actions/
“gsu” bash 脚本替换“gksu”
pxexec
创建 bash 脚本是使用有点熟悉的术语调用的两种方法之一gsu
。在您的路径之一中创建此文件:
#!/bin/bash
# Usage: gsu gedit file1 file2...
# -OR- gsu natuilus /dirname
# & is used to spawn process and get prompt back ASAP
# > /dev/null is used to send gtk warnings into dumpster
COMMAND=$1 # extract gedit or nautilus
pkexec "$COMMAND" "${@:2}" &> /dev/null&
保存文件并将其标记为可执行文件chmod +x gsu
现在,您无需键入内容gksu
来编辑 grub 配置,而是可以使用:
gsu gedit /etc/default/grub
“gsu”作为“pkexec”的别名来替换“gksu”
创建别名是pxexec
使用有点熟悉的术语来调用的第二个选项gsu
。打开文件~/.bashrc
并搜索alias
。您将看到以下内容:
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
在最后一行之后添加以下内容:
alias gsu='pkexec'
保存文件并退出。