为什么我们sudo
要以管理员身份执行终端命令?为什么不呢 admin
?有什么理由sudo
吗?
sudo
为(I)出汗。我喜欢将其解释sudo X
为满头是汗,因为害怕输入错误的命令并擦掉我的所有数据。这有助于记住,sudo
仅在以下情况时才应在命令前添加:1)必要2)您知道自己在做什么3)您已经仔细地编写和阅读了命令行,以避免输入错误(尤其是很难避免的空格)捕获并可能导致非常糟糕的意外结果)。
为什么我们sudo
要以管理员身份执行终端命令?为什么不呢 admin
?有什么理由sudo
吗?
sudo
为(I)出汗。我喜欢将其解释sudo X
为满头是汗,因为害怕输入错误的命令并擦掉我的所有数据。这有助于记住,sudo
仅在以下情况时才应在命令前添加:1)必要2)您知道自己在做什么3)您已经仔细地编写和阅读了命令行,以避免输入错误(尤其是很难避免的空格)捕获并可能导致非常糟糕的意外结果)。
Answers:
从维基百科:
sudo是用于类似Unix的计算机操作系统的程序,该程序允许用户使用其他用户(通常是超级用户或root)的安全特权运行程序。它的名称是“ su”(替代用户)和“ do”的组合,或采取操作。
与su命令不同,用户通常将自己的密码提供给sudo而不是root密码。进行身份验证之后,如果/ usr / local / etc / sudoers(有时在/ etc / sudoers中找到)配置文件允许用户访问,则系统将调用所请求的命令。sudoers配置文件可实现大量的可配置性,包括但不限于:仅从调用终端启用root命令;某些命令不需要密码;每个用户或组要求输入密码;每次都需要重新输入密码,或者完全不需要特定命令行的密码。它也可以配置为允许传递参数或多个命令,甚至支持带有正则表达式的命令。
它是具有超级用户(管理员)特权的临时一次性命令,而无需直接root登录。
sudo
和su
BSD和Linux一样,都有和。
在sudo之前,大多数管理员都以root用户身份登录,因为这是配置系统的简便方法,因为您拥有所有权利。但是,一个小错误或错误的Internet链接以及您的整个系统可能会受到影响甚至受到损害。
由于这个问题,须藤出现了。目的是仅在短时间内且仅在需要时使用管理特权。此外,这可以避免用户登录另一个帐户。这显然会增强系统安全性。
在Ubuntu下,他们选择增强系统的安全性。因此,他们决定采用“ sudo”方式。根用户已禁用;不需要它,尤其是没有用户通过X界面以root用户身份登录的风险。此外,他们还允许授权用户使用sudo启动每个命令。很棒的事情是高级用户可以访问root帐户。
的缺点sudo
:
sudo
在每个需要管理特权的命令之前编写什么sudo
意思 它的名称是“ su”(替代用户)和“ do”的串联。
为什么sudo
不admin
呢?我认为这sudo
意味着admin
在特定时间且仅在需要时才显示。
来自Windows环境的人应该了解为什么不是admin
:)
su
,sudo
在这方面,两者之间的唯一区别是使用的凭据。使用sudo
而不是su
不是更安全(实际上,它的安全性要差一些);sudo的主要优点(以及Ubuntu选择它的原因)是为用户提供了简便性(只需记住一个密码)。
超级用户
有一个命令su可以成为超级用户,所以您可能会说
$ su
# apt-get install somehorror
# exit
$
sudo让您一口气做到这一点,而您不必记住要放弃魔力。
$ sudo apt-get install somehorror
su
(“替代用户”)允许您成为任何用户:您可以指定用户名作为参数。
关于为什么它不是“ admin”(或更间接地,为什么su不是“ switchUser”或类似的东西),由于历史原因与Unix的起源有关,传统的Unix命令往往是最小的缩写。
出于最基本的原因,我们首先需要回到称为Unix的相同原因。Unix的大部分灵感来自于早期的多用户多任务操作系统之一,即MIT的Multics。(Unix的名称是“ Multics的单数形式”或“ castrated Multics”,这取决于您询问的人和当前的心情。)
在Multics的其他创新中,它引入了将实际文件位置与目录信息分开的概念,从而允许单个文件具有多个名称。(在Unix中,“链接”。)Multics充分利用了这一点;大多数Multics命令同时具有ALongNameThatIsImpossibleToType和ASNTOECR(只有专家才能记住的简称)。经验表明,长名称实际上并没有增加用户友好性,因为实际上,在那时,所有用户都是或很快成为“专家”,几乎没有人使用过长名称。当Unix采用Multics的某些设计时,它们的简化之一就是丢弃未使用的长名称,而仅保留专家友好的短名称。
这也非常符合Unix的理念,即将操作系统及其核心命令集缩减为基本内容,从而使其能够在较小的系统上高效运行。在那些日子里,程序员仍在保留每个字节和每个周期的可能。处理器非常慢,终端速度同样非常慢,内存也非常昂贵(并且速度更慢,并且只有很小的缓存)。将系统命令压缩到最小长度可能实际上并没有节省太多(如果有的话)实际资源,但是在当时的思维方式上“感觉很对”。
如果您确实坚持使用用户友好的命令名,那么Unix的回答将是“您知道如何编写Shell脚本;您可以自己实现。如果您不知道如何编写Shell脚本,则需要学习如何做。因此。如果您不喜欢学习和/或编码,那么您将不会对Unix感到满意,而应该使用其他东西。”
“ superuser ”是否是su
原始来源,因为您提供的用户名不必是超级用户,所以它是不准确的。同理使用另一个用户来执行命令sudo -u
。
“ 替代用户 ”更为准确,但听起来笨拙。这让我想到了代课老师。
因此,我更喜欢将su
其简单地视为“切换用户”,sudo
因此也被认为是“切换用户并执行”。
从Sudo网站:
“ Sudo是什么?
Sudo(su“ do”)允许系统管理员委派权限,以赋予某些用户(或用户组)以root或其他用户身份运行某些(或全部)命令的能力,同时提供命令及其参数的审核跟踪。”
“ Sudo最初是由Bob Coggeshall和Cliff Spencer于1980年前后在纽约州立大学/布法罗分校的计算机科学系构思和实施的。它运行在运行4.1BSD的VAX-11 / 750上。 ,格雷琴·菲利普斯(Gretchen Phillips),约翰·洛弗索(John LoVerso)和唐·格沃里克(Don Gworek)于1985年12月发布到了net.sources Usenet新闻组。”
就是说,尽管我不相信有任何证据,但我始终坚信该名称是一种怪异的程序员笑话。您有命令“ su”(超级用户)“ do”,但实际上不是超级用户-将“ doo”转换为“ doh”,“ sudo”的外观/听起来很像“ pseudo”(假,假)。
大多数人给出的答案是“超级用户操作”的混搭。我喜欢这样,但是说它是“替代用户”的混搭可能更正确,因为您可以像-u标志一样选择“执行”的用户。
我还认为它是对psuedonym单词的一种玩法,因为您可以使用-u标志假装为其他人,无论是root还是任何其他用户。
root
(尽管有意义或至少为uid 0,通常是),请参阅runas_default
in sudoers
。
sudo ls
为“超级用户身份,做ls
”(不,这不是傻了,记忆术是记住命令的重要)(也没有,大概意思是“ 小号女巫ü SER和做的,因为su
方式切换用户,但我发现前者最好的。 -))