sudo和su命令有什么区别?


12

sudosu命令有什么区别?为什么OS X处理这些与Linux不同?


1
如果有的话,Linux处理它们的方式将不同于OSX。OSX被认证为Unix,这意味着它符合特定的行为标准。Linux与Unix类似,但未通过Unix认证,因此不一定符合Unix标准。因此,如果存在差异(除了Aaron Lake的答案中提到的root密码问题),则它们在所讨论的特定Linux发行版的实施者方面是不符合的。
alesplin

Answers:


21

OS X处理sudosu与Linux相同。

sudo是一个命令,无需任何其他选项,将以超级用户身份运行命令。例如:

% touch /newfile
touch: /newfile: Permission denied
% ls -l /newfile
ls: /newfile: No such file or directory
% sudo touch /newfile
% ls -l /newfile 
-rw-r--r--  1 root  wheel  0 Apr 27 11:45 /newfile

su另一方面,将当前用户切换为root用户(同样,无需任何其他命令)。在下面的示例中,我必须运行sudo su,因为我不知道系统的root密码:

% whoami
alake
% sudo su
$ whoami
root

sudo和之间的主要区别su是,sudo以root身份运行命令,而以root身份运行su。与其他命令行实用程序非常相似,还有多种使用sudo和的替代方法su,如果您有兴趣,可以随时运行man <command>eg。man sudo以获得更多信息。


5
用简单的语言来讲sudo可以是as super user and do。另外,在OS X上,一旦成功通过身份验证,您可以在短时间内(默认为5分钟,除非覆盖)使用不带密码的sudosudoers之后必须再次输入密码。
binarybob 2012年

1
“无附加选项”是一个非常重要的限定词...它们都sudo su -lm _www将使您成为root用户以外的用户...例如,将让您拥有像webserver用户一样的shell(通过以root用户身份运行命令,例如(没有有效的密码)

2
@Joe,我考虑过添加该信息,但为简洁起见,省略了该信息。正如您所描述的那样,它sudo是一个非常强大的实用程序,即使在此处涵盖基本功能,最终也会使目标受众感到困惑或不知所措,以寻找sudo和之间的区别su
亚伦湖

“ sudo和su之间的主要区别是sudo以root用户身份运行命令,而su使您具有root用户权限”-否,sudo -s运行shell(“使您具有root用户权限”)并su -c command以root用户身份运行命令。
el.pescado 2012年

2
再次为简洁起见,我省略了许多使用的替代方法sudo。另外,su -c command由于您不知道root的密码,因此默认情况下无法在OS X上执行此操作。但是sudo su,您可以更改密码,然后su -c command。我觉得这个问题已经回答了,不需要深入研究sudo和su的替代用法。但是,我将为好奇的人更新帖子。
亚伦湖
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.