sudo cmd
和之间的区别是否与使用和
启动 shell 之间gksu cmd
的区别相同? sudo -i
sudo -s
... 或者换一种说法,和 一样
和一样
吗?sudo cmd
sudo -i cmd
gksu cmd
sudo -s cmd
编辑:根据我在Ubuntu 文档页面上读到的内容,上面写着:
You should never use normal sudo to start graphical applications as root.
You should use gksudo (kdesudo on Kubuntu) to run such programs. gksudo sets
HOME=~root, and copies .Xauthority to a tmp directory. This prevents files
in your home directory becoming owned by root.
(AFAICT, this is all that's special about the environment of the started
process with gksudo vs. sudo).
“ AFAICT”并没有真正让我完全相信它没有更多的东西。
(..迟来的更新:我今天(2 个月后)测试了他的评论:
“这可以防止你的主目录中的文件被 root 拥有。”
我通过 sudo/gksu 创建的所有文件都归“ root ”所有,并且该组是“根”。)
我已经阅读了部分内容info sudo
并注意到-i
并且-s
似乎在做与AFAICT环境问题相同的事情......
但我遇到了超载......所以我在这里问了我的问题。
PS ..我的问题不是关于 sudo vs gksu
..更多的是关于:gksu是否与sudo -s相同
.. 如果不是,它们有何不同?
gksu
基本上是 sudo 的图形前端,它允许运行图形命令,而无需运行 X 终端仿真器并直接使用 su。它实际上只是超级用户命令的 GTK+ 皮肤。因此,如果您想以 root 身份运行基于 GUI 的程序,您可以使用 来调用它
gksu cmd
,而不是sudo cmd
,它用于以 root 身份调用控制台程序。sudo -i
将登录环境重置为目标用户(在本例中为root)。主要HOME
是改变了环境变量,也~/.bashrc
就是加载了目标用户的。gksu
因此,就像sudo -i
切换$HOME
到root用户一样。这不是一个真正的答案,但它可能会引起一些兴趣......
我开始了解这些 su 命令发生了什么,
但我还没有完全到那里......我确实使用
gksu
. ..这对我来说更像是一个理解之旅......我不知道是否对orgksu
有效,或者我必须使用 KDE 变体..konsole
kate
kdesu
这是我刚刚尝试过的一些测试的一些结果。
这些结果与Ubuntu Documentation Page不一致,其中说:
更新: sudo和gksu调用终端的 XAUTHORITY
env
变量是不同的(如Ubuntu 文档页面所述)..这表明这
gksu
绝对与sudo -s
我在问题中提到的命令不同......因此回答了我的 otiginal 问题(以某种仍然模糊的方式)......克里斯的回答当然让我认真思考这个问题!...我需要一杯咖啡!sudo 用于命令行应用程序,gksu/gksudo 用于图形应用程序