如果我正确理解 Linux 哲学,sudo
应该谨慎使用,并且大多数操作应该以低权限用户身份执行。但这似乎没有意义,因为我总是必须输入sudo
,无论我是在管理包、编辑配置文件、从源代码安装程序还是其他什么。这些甚至不是技术性的东西,只是普通用户所做的任何事情。
它让我想起了 Windows 的 UAC,人们要么禁用它,要么将其配置为不需要密码(只需单击一下)。此外,许多人的 Windows 用户也是管理员帐户。
另外,我看到有些人显示需要sudo
权限但没有sudo
.他们的系统配置是否是sudo
不需要的?
答案1
您提到了这些系统管理功能
管理包、编辑配置文件、从源代码安装程序
作为事情
普通用户所做的任何事情
在典型的多用户系统中,这些不是普通的用户操作;系统管理员会担心这个。普通用户(不是“特权用户”)可以使用该系统,而无需担心其维护。
是的,在家庭系统上,您最终必须管理系统并使用它。
使用起来真的这么难吗sudo
?请记住,如果这只是您的系统,那么您没有理由不能弹出 shell root
(sudo -s
- 请参阅这个帖子获取 root shell 的各种方法的概述)和/或配置sudo
不提示输入密码。
答案2
每当您执行标准用户不应该有能力执行的操作时,就会使用 Sudo/Root,因为存在以系统管理员通常不允许的方式损坏/更改系统配置的风险。
无论我是在管理包、编辑配置文件、从源代码安装程序,还是你有什么。
所有这些从技术上讲都是管理功能,如果执行不正确的操作,可能会严重损坏您的系统。在企业环境中,作为系统管理员,如果没有我明确的知识,我不会让我的用户做这些事情,因此需要 sudo。
例如,如果可以在没有提升权限的情况下修改程序包/配置文件,那么外部源只需执行可能破坏/损害您的系统的远程代码将非常简单。通过强制这些操作需要 root 访问权限,它会迫使您作为用户来决定是否执行这些操作。
它与 Windows 非常相似UAC
,它实际上是 Windows 的创意来源UAC
。
第一次使用 sudo 时收到的引言非常合适,也非常重要:
我们相信您已经收到了本地系统管理员的常规讲座。通常可以归结为以下三件事:
#1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility.
尤其是#2,打字前三思。这是 sudo 存在的一个重要原因,当你输入命令时,它会提示“必须是 root 才能执行此操作”,它会迫使你停下来思考你实际上在做什么。
答案3
另外,我看到有些人显示需要
sudo
权限但没有sudo
.他们的系统配置是否是sudo
不需要的?
您必须以超级用户身份执行这些命令,但不必使用sudo
.例如,您可以使用su
或doas
(OpenBSD 的替代品sudo
),或者您可以简单地以 root 身份登录。
因此,如果他们在此处显示命令,而sudo
不是假设读者将仅使用他最喜欢的方式作为超级用户执行这些命令。
这当然并不意味着他们可以作为普通用户执行这些命令。
答案4
关键是,从历史上看,系统实际上是由多个用户共享的,这些用户只需登录,做一些事情,然后注销。因此管理员和普通用户之间的区别。这样的系统仍然存在于大学实验室中,如果你使用这样的计算机,你可以明显感受到差异。您是唯一用户并且恰好必须充当管理员的家用电脑实际上是一个较晚的发展。