用pkexec替换gksudo:编辑器无法在当前文件夹中启动

我想成为一个好孩子并停止使用gksudo ,特别是因为它只是在18.04每日构建中成为孤儿(注意,这个问题不是特定于18.04)。

在使用gksudo旧时代,我通常会导航到包含我要编辑的文件的文件夹(我使用pcmanfm),然后从菜单中选择工具/在终端中打开当前文件夹 。 然后我在新打开的终端输入gksudo leafpad [file-I-wish-to-edit]

在非常有用的答案中使用信息如何配置pkexec? 我设置了.bash_aliases,我现在能够在新打开的终端中键入pkexec leafpad [file-I-wish-to-edit] ,我没有收到任何错误。 可悲的是,虽然我得到一个空白文件而不是我想要的。 我已经确定这是因为leafpad正在查找/root而不是我想要的文件夹。

我怎样才能保持我的光环,继续使用pkexec而不是gksudo ,但仍保留我习惯的function?

正如评论中所提到的, gksu16.04中是“孤儿”但你仍然可以安装它:

 sudo apt install gksu 

这就是说我很久以前为pkexec制作了一个包装脚本,可能会引起一些兴趣:

 #!/bin/bash # Usage: gsu gedit file1 # -OR- gsu natuilus /dirname COMMAND="$1" # extract gedit or nautilus ABSOLUTE_NAME=$(realpath "$2") pkexec "$COMMAND" "$ABSOLUTE_NAME" #log-file "$ABSOLUTE_NAME" ~/bin/log-gsu-"$COMMAND" 

我将包装器gsu命名为gksu的简短forms。 log-file脚本是一个单独的项目,我在脚本中注释了这个答案。

您需要先设置geditnautilus策略工具包,然后才能使用此脚本作为注释参考。 在您的情况下,您需要为leafpad设置策略工具包。

希望这可以帮助!

我在桌面启动器或bash脚本中使用此替代方法来保持gksu的感觉:

 bash -c 'sudo -i nautilus;' 

…虽然这里没有pkexec – 请不要告诉我的管理员。

使用像pkexec thunar %f (thunar是xfce文件管理器, %f是当前路径) – 与Bionic XFCE一样,就像gksu一样。