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).
这“据我所知”确实无法让我完全相信这件事情除此之外没有别的了。
(...迟来的更新:我今天(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
有效,或者konsole
kate
必须我使用 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 用于图形应用程序