在Linux中运行管理应用程序时,可以使用su(“switch user”)命令切换到超级用户(root),也可以使用sudo(“super user do”)命令。
知道何时使用sudo命令的一种方法是,如果您尝试在终端中运行命令,只能遇到“拒绝访问”或“操作需要超级用户权限”错误。如果Linux发行版(如Ubuntu)不允许使用root用户,则可能会发生这些错误。使用sudo命令后,可以使用提升的权限运行该特定命令。
但是,如果您选择使用su命令,则将整个用户切换到root,这意味着即使在第一个命令之后,每个后续命令也都使用root凭据运行。这使得很容易意外地运行提升命令,如果你不小心,可能会造成很多伤害。
重申:sudo只对每个以sudo启动的命令起作用,而su启用 一切 命令在该提示符中以超级用户身份运行,而无需在每个用户之前键入sudo或su。
这个怎么运作
虽然它们的工作方式不同,但您可以将sudo命令与您在Windows或macOS中看到的提示进行比较。当在这些操作系统中询问您是否要继续执行该特定操作时,您会遇到一个按钮,确认您要使用提升的权限运行操作,有时您甚至可能需要输入管理员密码。
与那些操作系统非常相似,Linux使用sudo命令作为正常任务和管理任务之间的隔离墙,因此您必须确认您要执行命令执行的任何操作。更相似的是Windows中的runas命令;与在Linux中一样,runas命令在命令行中运行,以使用来自特定用户(通常是管理员)的凭据启动文件。
小费: 如果您不确定是使用sudo还是su,请查看命令行中的尾随字符。如果它是一个井号(#),您将以root身份登录。
关于Sudo命令
在Linux中,sudo(发音为“sue dough”)允许系统管理员为某些用户或用户组提供以root身份运行部分或全部命令的能力,同时记录所有命令和参数。但是,它不是shell的替代品。
当您在终端中的任何命令前放置“sudo”时,以下是使用提升的权限运行,这就是为什么它是特权相关错误的解决方案。如果您想要运行被视为管理任务的命令,则需要它。
Sudo按指令运作。功能包括限制用户可以在每个主机上运行的命令的能力,每个命令的大量日志记录,以提供谁做了什么的清晰审计跟踪,sudo命令的可配置超时,以及使用它的能力许多不同机器上的配置文件。
Sudo命令示例
没有管理权限的标准用户可能会在Linux中输入命令来安装一个软件:
dpkg -i software.deb
该命令返回错误,因为不允许没有管理权限的人员安装软件。然而,sudo命令来救援。相反,该用户的正确命令是:
sudo dpkg -i software.deb
这次安装软件。这假定具有管理权限的人员先前已将Linux配置为允许用户安装软件,或者如果提示输入密码,则表明已正确输入密码。
注意: 您还可以配置Linux以防止某些用户使用sudo命令。