sudo -i和sudo su-有什么区别


Answers:


30

它们在功能上可能接近相同的东西,但似乎'sudo -i'的重量更轻,并且在您的环境中保留了一些方便的引用。

您可以通过查看“ ps auxf”来查看额外的过程(f为您提供森林视图)

sudo -i 产生此进程树

jkrauska  4480  0.0  0.0  76828  1656 ?        S    23:38   0:00  |   \_ sshd: jkrauska@pts/0
jkrauska  4482  0.0  0.0  21008  3816 pts/0    Ss   23:38   0:00  |       \_ -bash
root      4675  0.6  0.0  19512  2260 pts/0    S+   23:42   0:00  |           \_ -bash

sudo su-产生此进程树

jkrauska  4480  0.0  0.0  76828  1656 ?        S    23:38   0:00  |   \_ sshd: jkrauska@pts/0
jkrauska  4482  0.0  0.0  21008  3816 pts/0    Ss   23:38   0:00  |       \_ -bash
root      4687  0.5  0.0  43256  1488 pts/0    S    23:42   0:00  |           \_ su -
root      4688  0.5  0.0  19508  2252 pts/0    S+   23:42   0:00  |               \_ -su

请注意,它们是从同一bash进程pid 4482开始的,但是su-似乎又产生了另一步。)

您的第一个“ sudo”已经将您的访问级别提升为root。在sudo中没有指定用户名的情况下运行su会将当前用户更改为root用户两次。

研究此问题的另一种方法是使用strace -f运行两个命令。

strace -f -o sudoi sudo -i

strace -f -o sudosu sudo su -

如果您区分这两个strace,您将看到sudo su-正在运行更多exeve。

还有一件事。

sudo -i维护SUDO设置的额外环境变量。

SUDO_USER=jkrauska
SUDO_UID=1000
SUDO_COMMAND=/bin/bash
SUDO_GID=1000

sudo su-破坏这些变量。


谢谢,我投票给你正确的答案。还有一个问题,那sudo su -没有意义吗?
霍华德

如果您想破坏SUDO的反向引用,可能会很有用。因此,在这种情况下并非没有意义。
Joel K

成为非root用户时,参数处理,环境变量处理和安全性也存在很大差异。请参阅我在此处添加的内容:serverfault.com/q/601140/102814
Craig Ringer 2014年

1

镜头答案:不,他们不一样。

长答案: sudo和su-是完成相同任务的不同程序,这使您拥有root特权。

su曾经是在Linux系统上扎根的事实上的方法。但是,始终需要分离权限并留下一些审核信息。另外,当您执行su时-您所做的所有操作都是以root身份完成的,拥有那么多功能很危险。sudo就是在这里进行营救的。

sudo具有su没有的一些特征。sudo的关键要素是它能够以root用户身份运行“一个”命令,然后将特权授予普通用户。 示例:删除root拥有的文件。

sudo rm /root/someFile

该命令将删除文件,因为每次使用sudo命令之前,sudo都会将您提升为root用户。您运行的下一个命令将像普通用户一样运行(除非您在开头添加sudo命令)。这使您可以完成管理任务,然后立即放弃特权,从而避免出现危险情况。

sudo还提供了其他好处,例如限制用户可以运行的程序集,记录在sudo下运行的命令等。有关更多信息sudo简而言之

当您执行su-sudo -i时,也会执行相同的操作。那已经成为根,但是请记住susudo完全不同,它们作为系统管理员为您提供了不同的工具。我个人从不运行su-并且我的pam策略禁止运行su,并且不允许任何人运行它。在我的系统中,您总是必须使用sudo原因来获得额外的好处。

更多信息:使用和启用sudo


su也可以只运行一个命令:su -c 'command ...'
Eliah Kagan

问题是关于sudo -isudo su -之间的区别,而不是sudo和之间的区别su
Alessio Gaeta
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.