为什么叫sudo?

为什么我们使用sudo来执行终端命令作为管理? 为什么不是admin或其他什么? sudo有原因吗?

来自维基百科 :

sudo是一个类Unix计算机操作系统的程序,允许用户使用另一个用户(通常是超级用户或root用户)的安全权限运行程序。 它的名字是“su”(替代用户)和“do”的串联,或采取行动。

与su命令不同,用户通常会将自己的密码提供给sudo而不是root密码。 在身份validation之后,如果/ usr / local / etc / sudoers(有时在/ etc / sudoers中找到)配置文件允许用户访问,则系统将调用请求的命令。 sudoers配置文件支持大量可配置性,包括但不限于:仅从调用终端启用root命令; 某些命令不需要密码; 每个用户或组需要密码; 要求每次都重新输入密码,或者根本不需要特定命令行的密码。 它还可以配置为允许传递参数或多个命令,甚至支持具有正则表达式的命令。

它是具有超级用户(管理员)权限的临时一次性命令,无需直接root登录。

xkcd: Sandwich

sudo之前,大多数管理员都以root用户身份登录,因为这是一种配置系统的简便方法,因为您拥有所有权限。 但是,一个小错误 ,或错误的互联网链接和整个系统可能会受到影响甚至受到损害。

由于这个问题, sudo出现了 。 目的是仅在短时间内使用管理权限,并且仅在需要时使用。 此外,这将避免用户登录到另一个帐户。 这显然会提高系统安全性

Ubuntu下 ,他们选择增强系统的安全性。 因此,他们决定遵循’sudo’的方式。 root用户被禁用; 没有必要,特别是没有用户通过X接口与root用户登录的风险。 此外,他们允许为授权用户使用sudo启动每个命令。 很酷的是,超级用户可以访问root帐户。

sudo缺点:

  • 您通过sudo允许哪些命令
  • 您需要在每个需要管理权限的sudo之前编写sudo
  • 您经常需要重新输入密码

什么是sudo意味着什么? 它的名字是“su”(替代用户)和“do”的串联。

为什么sudoadmin ? 我认为sudo意味着admin在特定时间,并且只在您需要时。

来自Windows环境的人应该理解为什么它不是admin 🙂

参考文献: 网站
图片: xkcd

来自Linux.com,Linux Foundation的产品:

Sudo代表“ 替代用户做 ”或“ 超级用户做 ”(取决于你想看它的方式)。 对于许多Linux发行版来说,sudo所做的事情非常重要和至关重要。 实际上,sudo允许用户以另一个用户(通常是root用户)的身份运行程序。

[强调我的。] 来源

超级用户呢

有一个命令,su,成为超级用户,所以你可能会说

 $ su # apt-get install somehorror # exit $ 

sudo让你一举做到这一点,你不必记得放弃你的神奇力量。

 $ sudo apt-get install somehorror 

关于为什么它不是“管理员” – 或者更间接地,为什么su不是“switchUser”或类似的东西 – 由于历史原因,传统的Unix命令往往是最小的缩写,与Unix的起源有关。

由于最基本的原因,我们需要回到它首先称为Unix的相同原因。 Unix的大部分灵感来自早期的多用户多任务操作系统之一,麻省理工学院的Multics。 (Unix的名字要么是“Multics的单数”,要么是“阉割的Multics”,取决于你问的对象和他们现在的情绪。)

在Multics的其他创新中,它引入了将实际文件位置与目录信息分开的概念,允许单个文件具有多个名称。 (用Unix术语表示“链接”。)Multics(完全)充分利用了这一点。 大多数Multics命令都有ALongNameThatIsImpossibleToType和ASNTOECR(只有专家才能记住的简短名称)。 经验表明,长名称确实没有增加用户友好性,因为实际上,当时所有用户都是或很快成为“专家”,几乎没有人使用过长名。 当Unix采用Multics的一些设计时,他们的一个简化方法是丢弃未使用的长名称并保留专家友好的短名称。

这也非常符合Unix的理念,即将操作系统及其核心命令集减少到其基本要素,允许它在较小的系统上高效运行。 在那些日子里,程序员仍然保留每个字节和周期。 处理器速度非常慢,终端速度同样非常慢,而且内存非常昂贵(而且速度更慢,并且如果有的话还有微小的缓存)。 将系统命令保持在最小长度可能实际上没有节省太多(如果有的话)真实资源,但它对于当时的思维方式“感觉正确”。

如果你真的坚持用户友好的命令名,Unix的答案就是“你知道如何编写shell脚本;自己实现。如果你不知道如何编写shell脚本,你需要学习如何做所以。如果你不喜欢学习和/或编码,你就不会对Unix感到满意,而应该使用别的东西。“

无论“ 超级用户 ”是否是su最初派生的,它都是不准确的,因为您提供的用户名不一定是超级用户。 同样使用sudo -u作为另一个用户执行命令。

替代用户 ”更准确,但听起来很笨拙。 这让我想到了一位代课老师。

因此,我更倾向于将su视为“切换用户”而将sudo视为“切换用户&做”。

来自Sudo网站 :

“什么是Sudo?

Sudo(su“do”)允许系统管理员委派权限,使某些用户(或用户组)能够以root用户或其他用户身份运行某些(或所有)命令,同时提供命令及其参数的审计跟踪“。

“Sudo最初是由Bob Coggeshall和Cliff Spencer于1980年左右在纽约州立大学布法罗分校的计算机科学系构思和实施的。它运行在运行4.1BSD的VAX-11/750上。更新版本归功于Phil Betchel,Cliff Spencer ,Gretchen Phillips,John LoVerso和Don Gworek,于1985年12月被发布到net.sources Usenet新闻组。“

也就是说,虽然我不相信有任何证据,但我一直坚信这个名字是一种令人讨厌的程序员笑话。 你有命令“su”(超级用户)“做”,但你实际上并不是超级用户 – 将“doo”变成“doh”和“sudo”看起来/听起来很像“伪”(假) ,假)。

大多数人都给出了答案,即它是“超级用户做”的混搭。 我喜欢这个,但是说​​它是“替代用户做”的混搭可能更为正确,因为你可以像-u标志那样选择你“做”的用户。

我也认为它是关于psuedonym这个词的游戏,因为你可以伪装成其他人,无论是root用户还是使用-u标志的任何其他用户。