bmc*_*148 42 security command-line sudo administrator
因此,我一直在研究使用su和之间的差异sudo,并且每个人似乎都同意这种sudo方法比允许访问 root 帐户本身更安全。他们说,使用 root 帐户,您只需一个命令就可以破坏整个系统。这个我明白。但是在系统上创建的初始用户也可以使用 sudo 访问所有命令。这我可以通过运行找到su -l。如果是这种情况,那么我可以简单地运行sudo <game-ending command>以破坏我的系统。那么,与允许我直接访问超级用户帐户相比,这种方法如何更好或更安全?我可以运行所有相同的命令...
是不是因为sudo在命令行上使用我明确地告诉计算机我认为我知道我在做什么?他们是否认为人们会忘记他们在超级用户帐户下,除非他们明确说明?
人们还表示,如果系统被外国人入侵并进入,在 root 帐户下将允许他们对我的系统做可怕的事情。但在我看来,如果他们已经可以访问我的帐户并知道我的密码,他们可以通过使用 sudo 并输入我的密码来做同样可怕的事情,因为他们甚至不需要知道超级用户的密码。我没有得到什么?
Pan*_*her 42
就我个人而言,我不一定认为它更安全,而且(sudo 的)大部分好处都在多用户系统上。在单用户系统上,它可能是一个清洗。
好处是(排名不分先后):
sudo -i可能是将 root 的环境变量与用户隔离的最佳方法。这不时出现,但比较深奥。请参阅https://help.ubuntu.com/community/RootSudo#Special_notes_on_sudo_and_shells可能有更多的好处,但是,恕我直言,这些是主要的好处。
另见 - https://help.ubuntu.com/community/RootSudo
尝试回答您的其他一些想法:
因此,虽然您观察到 sudo 的问题或缺陷,但 su 具有完全相同的漏洞,并且 su 在这些方面并不优于 sudo,恕我直言
dij*_*uis 10
想象一下,你有 20 分钟的时间来做一些复杂的事情。你有点宿醉,你必须赶路。“让我们使用 su”你说。“它会节省一些时间”是你的理由。
不小心打字
rm -rf /*
Run Code Online (Sandbox Code Playgroud)
代替
rm -rf ./*
Run Code Online (Sandbox Code Playgroud)
您的系统现在正在变砖,距离截止日期还有 10 分钟。
如果您明确选择何时需要 root,则可以最大程度地减少发生这种情况的机会。可能不需要 Rootrm -r ./*那么为什么要使用它呢?为什么要冒险?
这就是这里的“安全”的含义。最大限度地降低用户(所有用户,而不仅仅是初学者)犯致命错误的风险。
当然,这是一个极端的例子,不应该允许在生产环境中发生(我保证它已经发生在生产环境中)。
安全方面,有些东西 sudo 也更好。正如@Panther 所说- 日志记录、限制、root 密码是 SPOF 等)
我想为其他答案添加一些历史观点。不幸的是,除了我自己对 Usenet 讨论和杂志文章的记忆之外,我没有任何可用的资源。
前段时间,在 1990 年代,即使没有多少计算机知识,发行版也让在您自己的硬件上安装 Linux 变得更加容易。一些 UN*X 方言。相反,许多人习惯于(单用户)系统,如 Windows 95/98。他们了解到大多数 Linux 系统管理任务都需要在那个奇怪的“root”帐户下工作。
因此,一些用户只是以root身份登录并使用该帐户进行所有日常工作。为什么他们应该有类型su和根一再或登录密码到一个新的tty只是一些管理命令?但是对所有事情都使用root当然不是一个好主意,因为在错误的地方使用一些不注意的命令可能会对您的系统造成更大的伤害。这甚至导致一些发行版(是 SuSE 吗?)修改root用户的桌面背景以显示一个大警告,您应该只将该帐户用于管理任务。
因此,Ubuntu 方式sudo有一些优点(除了Panther已经列出的那些)。
sudo缓存您的凭据,因此对于连续的多个管理命令,您只需输入一次密码(与 相比su)。这减少了只用root权限打开 shell 或新终端的冲动。¹ 对于那些不敢自己动手的人,还有安装派对。
² 但是您可以在以普通用户身份登录后使用类似sudo -i或这样的命令sudo su - root获取root shell。
³ 但是您当然知道您不应该简单地从 Internet 复制和粘贴命令,对吗?
| 归档时间: |
|
| 查看次数: |
13021 次 |
| 最近记录: |