Ubuntu 18.04从其存储库中完全删除了gksu软件包。
其背后的原因是,认为gksu仅以这种方式使用:
gksu gedit /some/root/setting
但是gksu还有其他用法。 Gksu是一个重要的程序,因为它与sudo或pkexec等图形程序不同,它可以防止其他程序窃取焦点。
因此,当您想使用简单的cli sudo键入密码,并弹出一些聊天窗口时,会发生这样的情况:将密码输入到聊天窗口中(如果您暂时不看屏幕),您的根密码就会发送给您的聊天好友。它发生在我身上一次,我不希望它再次发生 。
这就是为什么gksu是理想的安全性明智的原因,并且我经常在命令行级别使用它。因此,不要启动gedit,而要执行命令行操作,例如apt-get update && apt-get upgrade或执行一些bash脚本。
不,pkexec不能替代gksu,因为1)它不执行脚本,仅执行二进制文件,并且2)它不会阻止其他程序窃取焦点。
第二,您还可以使用gksu以安全的方式询问非root用户密码。例如:
ccrypt -K `gksu -p --message "Password:"` -d data.tar
所以我的问题是:在这些情况下,可以使用哪种程序替代gksu?
答案 0 :(得分:1)
您仍然可以按照以下方式获取gksu:
wget http://mirrors.kernel.org/ubuntu/pool/universe/libg/libgksu/libgksu2-0_2.0.13~pre1-9ubuntu2_amd64.deb
sudo apt install ./libgksu2-0_2.0.13~pre1-9ubuntu2_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gksu/gksu_2.0.2-9ubuntu1_amd64.deb
sudo apt install ./gksu_2.0.2-9ubuntu1_amd64.deb
答案 1 :(得分:0)
此答案仅涉及library(devtools)
source_url("https://raw.github.com/tonybreyal/Blog-Reference-Functions/master/R/bingSearchXScraper/bingSearchXScraper.R")
,没有其他内容。
除了gksu gedit
在Ubuntu 17.10中的消失之外,我还遇到了长期存在的问题,我的常规用户设置(如字体名称,字体大小,制表位,将制表符转换为空格等)从未被继承到gksu
/ sudo
,我总是需要重置它们。
此外,gksudo
没有用于编辑首选项的顶级菜单。
我编写的脚本不仅允许sudo
像gksu
一样使用,而且还可以将我的用户gedit
首选项复制到gedit
帐户中。
您将需要更改一行代码:
sudo
这会将窗口右移nohup gedit -g 1300x840+1+1220 $@ &>/dev/null &
像素,向下1
像素。您可能更喜欢1220
而不是1+1
。
窗口大小设置为1+1220
像素宽乘以1300
像素高。您可能更喜欢更大或更小尺寸,具体取决于显示器分辨率和HiDPI。因此,将840
更改为您的偏好。
1330x840
在路径中的某处创建bash脚本,并使用以下命令将其标记为可执行文件:
#!/bin/bash
# NAME: sgedit
# PATH: /mnt/e/bin
# DESC: Run gedit as sudo using $USER preferences
# DATE: June 17, 2018.
# Must not prefix with sudo when calling script
if [[ $(id -u) == 0 ]]; then
zenity --error --text "You cannot call this script using sudo. Aborting."
exit 99
fi
# Get user preferences before elevating to sudo
gsettings list-recursively | grep -i gedit | grep -v history | \
grep -v docinfo | \
grep -v virtual-root | grep -v state.window > /tmp/gedit.gsettings
sudoFunc () {
# Must be running as sudo
if [[ $(id -u) != 0 ]]; then
zenity --error --text "Sudo password authentication failed. Aborting."
exit 99
fi
# Get sudo's gedit preferences
gsettings list-recursively | grep -i gedit | grep -v history | \
grep -v docinfo | \
grep -v virtual-root | grep -v state.window > /tmp/gedit.gsettings.root
diff /tmp/gedit.gsettings.root /tmp/gedit.gsettings | grep '>' > /tmp/gedit.gsettings.diff
sed -i 's/>/gsettings set/g; s/uint32 //g' /tmp/gedit.gsettings.diff
chmod +x /tmp/gedit.gsettings.diff
bash -x /tmp/gedit.gsettings.diff # Display override setting to terminal
# nohup gedit $@ &>/dev/null &
nohup gedit -g 1300x840+1+1220 $@ &>/dev/null &
# Set the X geometry window size (WIDTHxHEIGHT+X+Y).
}
FUNC=$(declare -f sudoFunc)
sudo -H bash -c "$FUNC; sudoFunc $*;"
exit 0
然后调用它使用:
sudo chmod a+x /path/to-script/sgedit
代替以前的系统:
sgedit <file-name>
HTH