编辑::在人们的帮助下,我意识到我误解了文本并认为创建者 Ubuntu 也创建了sudo
,但事实并非如此!所以问题应该是如何强迫人们使用sudo
而不是su
提高安全级别?
我在读Linux 命令行经过威廉·肖茨,并在权限部分,他解释了 Ubuntu 是如何引入sudo
来提高安全性的。我会将整个文本放在底部。
最后一段让我感到困惑(就上下文而言,在前一段中,他说滥用su
命令如何导致安全级别降低):
当 Ubuntu 推出时,它的创建者采取了不同的策略。默认情况下,Ubuntu 禁用 root 帐户登录(通过未能为该帐户设置密码),而是使用
sudo
授予超级用户权限。初始用户帐户被授予对超级用户权限的完全访问权限,sudo
并且可以向后续用户帐户授予类似的权力。
所以如果初始用户帐户被授予完全访问超级用户权限sudo
,那么基本上这不是同一件事吗?
- 使用
su
-> 充当root
-> 完全访问超级用户权限 -> 安全问题 - 使用
sudo
--------------->完全访问超级用户权限->安全问题
据我了解,在使用中sudo
,你不需要知道root
帐户的密码,但如果你拥有root的所有权限,那就不会有任何区别,不是吗?
需要帮助!非常感谢您提前抽出时间并提供帮助。
Ubuntu 和 sudo
普通用户经常遇到的问题之一是如何执行某些需要超级用户权限的任务。这些任务包括安装和更新软件、编辑系统配置文件以及访问设备。在 Windows 世界中,这通常是通过授予用户管理权限来完成的。这允许用户执行这些任务。然而,它也使得用户执行的程序具有相同的能力。这在大多数情况下是可取的,但它也允许诸如病毒之类的恶意软件(恶意软件)肆意控制计算机。
在 Unix 世界中,由于 Unix 的多用户传统,普通用户和管理员之间始终存在较大的分歧。 Unix 中采取的方法是仅在需要时授予超级用户权限。为此,通常使用su
和命令。sudo
直到几年前,大多数 Linux 发行版都依赖su
于此目的。su
不需要sudo
所需的配置,并且拥有 root 帐户是 Unix 中的传统做法。这就带来了一个问题。用户可能会不必要地以 root 身份进行操作。事实上,一些用户专门以根用户身份操作系统,因为它消除了所有那些烦人的“权限被拒绝”消息。这就是将 Linux 系统的安全性降低到 Windows 系统的安全性的方法。这不是一个好主意。
当 Ubuntu 推出时,它的创建者采取了不同的策略。默认情况下,Ubuntu 禁用 root 帐户登录(通过未能为该帐户设置密码),而是使用sudo
授予超级用户权限。初始用户帐户被授予对超级用户权限的完全访问权限,sudo
并且可以向后续用户帐户授予类似的权力。
摘自本书第104页Linux 命令行,第五网络版,作者:威廉·肖茨
答案1
您是正确的,能够将用户 ( su
) 替换为 root 并以替换用户 ( ) 的身份执行命令sudo
都允许您访问 root 用户的权限。
一些差异可能有助于理解差异及其与安全性或系统稳定性的关系。
su
通常用于以不同用户身份运行 shellsudo
通常用于以不同用户身份运行单个命令
当以特权用户身份运行单个命令时,将运行一个任务。现在,当运行 shell 时,您可能会在特权模式下犯错误或进行其他更改。
打个比方,想象一下如果你可以随意召唤1000人的力量。如果你一直使用这种力量,你必须小心,当你打开门、刷牙、走在走廊上、走在街上的某个人附近,或者任何无数的例行公事时,你不会造成伤害。您一天内可能必须做的事情。相反,如果你只在需要时召唤力量来移动那个非常重的物体,并在完成任务后释放力量,那么你的危险性或造成意外伤害的可能性就会小得多。
回到你引用的文字
一些用户专门以根用户身份操作系统,因为它消除了所有那些烦人的“权限被拒绝”消息
这就像一直使用你的超能力一样。您更有可能无意中损坏系统,从而威胁到安全,具体取决于您的操作。
答案2
这不是您的意义上的安全不能造成损坏,只是它打破了导致损坏可能性更大的不良使用模式。
“回到过去”,人们在 X 会话中以 root 身份登录的情况并不少见。随之而来的是很多的问题。尽管如此,当代的指南仍将其吹捧为解决问题的简单方法,实际上有一个适当的非根解决方案。
通过简单地阻止以 root 身份登录,您就可以强制您的用户做正确的事情。当然,用户可以使用以下命令设置 root 密码sudo
,然后仍然执行不需要的登录,但这是他们必须跳过的额外障碍。这样,做正确的事情就变得更容易了(只以 root 身份运行一个需要 root 权限的命令,而不是寻找一种没有 root 权限的方法),而做错误的事情就很难了。
请注意,Ubuntu 绝不引入甚至没有普及 sudo(至少对我来说,以及在我的圈子中)。在 Ubuntu 进入市场之前,Sudo 就已在多个 Linux 发行版上使用。也许 Ubuntu 4.10 一开始的安装程序并没有强迫你设置 root 密码,你记不住了,但这确实不是闻所未闻的想法,你的 root 密码又长又难记,而且您在日常管理工作中使用 sudo。