当前位置: 首页>>技术问答>>正文


为什么叫sudo?

, ,

问题描述

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

最佳解决办法

来自Wikipedia

sudo is a program for Unix-like computer operating systems that allows users to run programs with the security privileges of another user (normally the superuser, or root). Its name is a concatenation of “su” (substitute user) and “do”, or take action.

Unlike the su command, users typically supply their own password to sudo rather than the root password. After authentication, and if the /usr/local/etc/sudoers (sometimes found at /etc/sudoers) configuration file permits the user access, then the system will invoke the requested command. The sudoers configuration file enables a huge amount of configurability, including but not limited to: enabling root commands only from the invoking terminal; not requiring a password for certain commands; requiring a password per user or group; requiring re-entry of a password every time or never requiring a password at all for a particular command line. It can also be configured to permit passing arguments or multiple commands, and even supports commands with regular expressions.

它是具有超级用户(管理员)权限的临时one-time命令,没有直接root登录。

次佳解决办法

sudo,history-of-ubuntu,ubuntu

在sudo之前,大多数管理员都是logged-in作为root用户,因为它是一种简单的配置系统的方式,因为你拥有所有的权限。但是,一个小错误,或错误的互联网链接和整个系统可能会受到影响甚至受到损害。

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

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

sudo的缺点:

  • 您通过sudo允许哪些命令

  • 您需要在每个需要管理权限的命令之前编写sudo

  • 每隔一段时间你就需要输入re-type的密码。

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

为什么sudo不是admin?我认为sudo意味着admin在特定时间内,并且仅在您需要时。

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

参考文献:Site图片:xkcd

第三种解决办法

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

Sudo stands for either “substitute user do” or “super user do” (depending upon how you want to look at it). What sudo does is incredibly important and crucial to many Linux distributions. Effectively, sudo allows a user to run a program as another user (most often the root user).

[强调我的。] Source

第四种办法

超级用户呢

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

$ su
# apt-get install somehorror
# exit
$

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

$ sudo apt-get install somehorror

第五种办法

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

出于最基本的原因,我们需要回到它首先称为Unix的相同原因。许多Unix的灵感来自早期的多用户多任务操作系统之一,MIT的Multics。 (Unix的名字要么是“Multics的单数”,要么是”castrated Multics”,取决于你问的对象和他们现在的情绪。)

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

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

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

第六种办法

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

“Substitute user”更准确,但听起来很笨重。这让我想到了一位代课老师。

因此,我更倾向于将su简单地视为”switch user”和sudo,因此称为“切换用户& do”。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/6891.html,未经允许,请勿转载。