我已经阅读了社区“RootSudo”文档并对这一行感兴趣:
您永远不应该使用普通的 sudo 以 Root 身份启动图形应用程序。
为什么?有什么不同?请提供一个简单的解释,因为我只是一个普通的桌面用户。
例如,我一直建议按ALT+F2和打字,gksu nautilus
或者gksudo nautilus
两者都是等价的;以root权限运行图形程序。但是,我刚刚在测试系统上安装了 raring,这不再有效。
gksu
并且gksudo
不作为默认安装的一部分安装;尽管它们在存储库中。至少在 12.04 中gksudo
只是一个符号链接到gksu
我一直这样做的原因是,虽然sudo
在某些情况下使用它通常是安全的,但它可能会导致图形应用程序出现问题,因为gksu
您是否以root身份运行程序,而sudo
您以自己的身份运行但具有提升的权限。
这可能意味着您无意中更改了关键系统文件的所有者。这可能会导致问题。
这个推理在这里得到了更好的解释:
为什么从全新安装中删除了命令,我们应该改用什么?
主要是我正在寻找一种将应用程序固定到 Unity 启动栏的方法,并以 root 身份运行它。
目前,即使我使用 sudo 启动应用程序,并在启动后固定它,下次它也会以当前用户身份启动。
可悲,但没有上下文菜单选项“以...运行”。
更新:我切换到 gnome3,现在我很高兴,我只缺少搜索。
我安装了 Ubuntu 17.10。现在我遇到了gksu
以下问题:
$ gksu -dg synaptic
No ask_pass set, using default!
xauth: /tmp/libgksu-HgUjgQ/.Xauthority
STARTUP_ID: gksu/synaptic/8760-0-alex-XPS-15-9530_TIME4974977
cmd[0]: /usr/bin/sudo
cmd[1]: -H
cmd[2]: -S
cmd[3]: -p
cmd[4]: GNOME_SUDO_PASS
cmd[5]: -u
cmd[6]: root
cmd[7]: --
cmd[8]: synaptic
buffer: -GNOME_SUDO_PASS-
brute force GNOME_SUDO_PASS ended...
Yeah, we're in...
Unable to init server: Could not connect: Connection refused
(synaptic:8767): Gtk-WARNING **: cannot open display: :1
xauth: /tmp/libgksu-HgUjgQ/.Xauthority
xauth_env: (null)
dir: /tmp/libgksu-HgUjgQ
Run Code Online (Sandbox Code Playgroud)
如果我不使用-g
,密码对话框将被禁用。所以看起来像为 root 创建 tty 的问题。
有什么建议吗?
我有一个很小的脚本,我希望它在启动时运行,但它需要 sudo 权限,所以我使用 gksudo 来完成这项工作。但它失败了。(使用 sudo 可以正常工作。)除了接口之外,sudo 和 gksudo 之间有什么区别吗?
顺便说一句:这是我提到的小脚本:
#!/bin/bash
cat /sys/devices/platform/sony-laptop/kbd_backlight|if read state; then \
echo $((1-$state)) | sudo tee /sys/devices/platform/sony-laptop/kbd_backlight; fi;
Run Code Online (Sandbox Code Playgroud) 更具体地说
/etc/apt/
Run Code Online (Sandbox Code Playgroud)
文件夹。我需要删除一些文件并替换
/etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)
使用较新的版本。
我想切换到 Antergos。打开Unetbootin时,无法成功打开。
这是我从终端打开 UNetbootin 时发生的情况:
$ sudo unetbootin
X Error: BadAccess (attempt to access private resource denied) 10
Extension: 130 (MIT-SHM)
Minor opcode: 1 (X_ShmAttach)
Resource id: 0x164
X Error: BadShmSeg (invalid shared segment parameter) 128
Extension: 130 (MIT-SHM)
Minor opcode: 5 (X_ShmCreatePixmap)
Resource id: 0xc0
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x2800010
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x2800010
X Error: …
Run Code Online (Sandbox Code Playgroud) 我写了一个建议使用sudo -i nautilus
. 我知道这gksu
已被弃用,我的印象sudo -i
是我们应该如何以 root 身份运行图形应用程序而不杀死小猫,但有人评论说“pkexec
是新的gksu
”。我的理解是这pkexec
与使用任何形式的不同sudo
:
并且需要设置,尤其是与图形应用程序一起使用时:
当我做的sudo -i
一切总是有效的时候,为什么我要去配置的麻烦pkexec
?我可以看到,为了编写一个以 root 身份启动某些内容的脚本,我需要这样做:
我可以在 Python 脚本或 .desktop 文件中使用 pkexec 吗?
但除此之外,我从使用中获得什么pkexec
?我应该什么时候使用这些命令?目前以 root 身份打开图形应用程序的最佳实践是什么?
(我已经阅读了......man
页面,但我感觉没有更明智。)
我在虚拟机上的虚拟机中运行了 ubuntu 12.04。它的存在主要是作为与 Ubuntu 一起玩的“玩具”,因此出于这个原因,我想要 GUI(这就是 ubuntu 12.04 中的“Dash”吗?无论如何......)
我目前使用这台机器的一件事是 LAMP 服务器。我使用“gedit”来编辑我的文件,但是因为我还没有正确设置权限,所以我只是在终端中使用 sudo 打开它。
刚才,为了简化这个过程,我在桌面上用一个非常简单的工作创建了一个 shell 脚本 - sudo gedit
我不禁想到必须有比这更明显的方法来从 GUI 以 root 身份打开 gedit。那么有吗?
编辑:我只是通过用 gksudo 替换 sudo 来“改进”我的脚本。现在我不必在 gedit 打开时打开终端窗口。所以我想现在这很方便:) 出于知识的考虑,知道这是否与经验丰富的 ubuntu 用户会做这种事情的方式很接近会很好。
gksu ×5
sudo ×4
gksudo ×2
root ×2
bash ×1
gedit ×1
gui ×1
nautilus ×1
permissions ×1
pkexec ×1
unetbootin ×1
unity ×1
unity-dash ×1
usb ×1
wayland ×1