为什么我们要使用sudo
来以管理员身份执行终端命令?为什么不是它 admin
或者其他什么?有什么原因吗sudo
?
答案1
从维基百科:
sudo 是类 Unix 计算机操作系统的一个程序,它允许用户以另一个用户(通常是超级用户或 root)的安全权限运行程序。它的名称是“su”(替代用户)和“do”(采取行动)的组合。
与 su 命令不同,用户通常向 sudo 提供自己的密码,而不是 root 密码。经过身份验证后,如果 /usr/local/etc/sudoers(有时位于 /etc/sudoers)配置文件允许用户访问,则系统将调用请求的命令。sudoers 配置文件具有大量可配置性,包括但不限于:仅从调用终端启用 root 命令;某些命令不需要密码;每个用户或组都需要密码;每次都需要重新输入密码或对于特定命令行根本不需要密码。它还可以配置为允许传递参数或多个命令,甚至支持带有正则表达式的命令。
它是一个临时的一次性命令,具有超级用户(管理员)权限,无需直接 root 登录。
答案2
前须藤,大多数管理员都以 root 用户身份登录,因为这是配置系统的一种简单方法,因为您拥有所有权限。然而,小错误或错误的互联网链接您的整个系统可能会受到影响甚至受到损害。
由于这个问题,sudo 出现了目的是仅在需要时短时间内使用管理权限。此外,这还可以避免用户登录另一个帐户。这显然会增强系统安全。
在下面Ubuntu,他们选择增强系统的安全性。因此,他们决定采用“sudo”方式。root 用户被禁用;没有必要,尤其是用户通过 X 界面以 root 用户身份登录不会带来风险。此外,他们允许授权用户使用 sudo 启动每个命令。更酷的是,高级用户可以访问 root 帐户。
缺点sudo
:
- 您允许通过 sudo 执行哪些命令
- 你需要
sudo
先写每个命令需要行政特权 - 你需要时不时地重新输入密码。
这是什么sudo
意思?它的名字是“su”(替代用户)和“do”的组合。
为什么sudo
不呢admin
?我认为sudo
意思是admin
在特定时间并且仅在您需要时才使用。
来自 Windows 环境的人应该明白为什么不admin
:)
答案3
摘自 Linux 基金会旗下产品 Linux.com:
Sudo 代表“替代用户做“ 或者 ”超级用户做“(取决于你想如何看待它)。sudo 的作用对许多 Linux 发行版来说非常重要和关键。实际上,sudo 允许用户以另一个用户(通常是 root 用户)的身份运行程序。
[重点是我的。] 来源
答案4
至于为什么它不是“admin”——或者更间接地说,为什么 su 不是“switchUser”或类似的——由于与 Unix 的起源有关的历史原因,传统的 Unix 命令往往是极简缩写。
出于最基本的原因,我们需要回到它最初被称为 Unix 的相同原因。Unix 的大部分灵感来自早期的多用户多任务操作系统之一 MIT 的 Multics。(Unix 的名字要么是“Multics 的单数”要么是“阉割的 Multics”,这取决于你问谁以及他们当时的心情。)
Multics 的其他创新之一是引入了将实际文件位置与目录信息分开的概念,允许单个文件具有多个名称。(用 Unix 术语来说就是“链接”)。Multics 充分利用了这一点;大多数 Multics 命令都具有 ALongNameThatIsImpossibleToType 和 ASNTOECR(只有专家才能记住的短名称)。经验表明,长名称实际上并没有增加多少用户友好性,因为实际上,当时所有用户都是或很快成为“专家”,几乎没有人使用过长名称。当 Unix 采用 Multics 的一些设计时,他们的简化之一就是丢弃未使用的长名称,只保留专家友好的短名称。
这也与 Unix 的理念相吻合,即精简操作系统及其核心命令集,使其能够在较小的系统上高效运行。在那些日子里,程序员仍在尽可能地节省每个字节和周期。处理器速度非常慢,终端速度也非常慢,内存非常昂贵(而且速度更慢,缓存很小,如果有的话)。将系统命令缩减到最短的长度可能实际上并没有节省多少(如果有的话)实际资源,但对于当时的心态来说,这“感觉是对的”。
如果您确实坚持使用用户友好的命令名称,Unix 的答案将是“您知道如何编写 shell 脚本;自己实现它。如果您不知道如何编写 shell 脚本,则需要学习如何编写。如果您不喜欢学习和/或编码,那么您不会对 Unix 感到满意,而应该使用其他东西。”