sudo 和 gksu 之间的区别与 sudo -i 和 sudo -s 之间的区别相同吗?

sudo 和 gksu 之间的区别与 sudo -i 和 sudo -s 之间的区别相同吗?

sudo cmd和之间的区别是否与使用和 启动 shell 之间的gksu cmd区别相同?
sudo -isudo -s

... 或者换句话说, 与 相同 和相同
吗?sudo cmdsudo -i cmd
gksu cmdsudo -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).

“据我所知”确实无法让我完全相信这件事情除此之外没有别的了。


(...迟来的更新:我今天(2 个月后)测试了他的评论:
“这可以防止您的主目录中的文件被 root 所有。”
我通过 sudo/gksu 创建的所有文件均归““,而该组是”“。”)


我读过部分内容info sudo,注意到-i-s 似乎做同样的事情据我所知环境问题...
但我遇到了超载...所以我在这里问了我的问题。

PS..我的问题不是关于 须藤对比堪萨斯州立大学
..更重要的是:是堪萨斯州立大学和...一样sudo -s
.. 如果不是,它们有何不同?

答案1

gksu基本上是 sudo 的图形前端,允许运行图形命令,而无需运行 X 终端仿真器并直接使用 su。它实际上只是超级用户命令的 GTK+ 皮肤。

因此,如果您想以 root 身份运行基于 GUI 的程序,则可以使用 来调用它gksu cmd,而不是sudo cmd,后者用于以 root 身份调用控制台程序。

答案2

sudo -i将登录环境重置为目标用户(,在本例中是这样的)。主要是环境变量改变了,也就是加载了HOME目标用户的环境变量。~/.bashrc

gksu因此,就像sudo -i切换$HOME用户。

答案3

这不是一个真正的答案,但它可能会引起一些兴趣...
我开始了解这些 su 命令的作用,
但我还没有完全了解...我确实使用gksu...这对我来说更像是一次理解之旅...我想了解是否对或gksu有效,或者konsolekate必须我使用 KDE 变体kdesu..

以下是我刚刚尝试的一些测试的结果。

From user fred's terminal, launch gnome-terminal

su style   resulting            custom   (ls)   new file
command    prompt               prompt   home   ownership
---------  -------------------- -------  -----  ----------
sudo      .root@DT:~#           fred's   fred   root
gksu       root@DT:/home/fred#  root's   fred   root
sudo -i    root@DT:~#           root's   root   root
sudo -s   .root@DT:~#           fred's   fred   root

这些结果与Ubuntu 文档页面,其中写道:

 This prevents files in your home directory becoming owned by root

更新:XAUTHORITYenv变量须藤堪萨斯州立大学调用的终端是不同的(如在Ubuntu 文档页面)..

sudo    #### XAUTHORITY=/var/run/gdm/auth-for-fred-RsngLK/database
sudo -i #### XAUTHORITY=/var/run/gdm/auth-for-fred-RsngLK/database
sudo -s #### XAUTHORITY=/var/run/gdm/auth-for-fred-RsngLK/database
gksu    #### XAUTHORITY=/tmp/libgksu-xR2OGn/.Xauthority   

这表明这绝对与我在问题中提到的命令gksu不同......因此回答了我原来的问题(以某种仍然晦涩难懂的方式)......而克里斯的回答确实让我认真思考这个问题!...我需要一杯咖啡!!sudo -s

答案4

sudo 用于命令行应用程序,gksu/gksudo 用于图形应用程序

相关内容