使用 sudo 是一种不好的做法吗?

使用 sudo 是一种不好的做法吗?

我听说使用 sudo 创建文件是一种不好的做法(出于安全原因),而应该“将它们限制”给用户或组,有人可以给我举个例子说明如果我进入 /user 并在那里安装例如 java,会出现什么问题吗?(我不太确定我是否听说过)

sudo mv ~/Downloads/java /usr/folderforjava/

如果这是一个不好的做法,我该怎么做?

答案1

sudo 是一个用于切换用户并允许特定操作的实用程序。只是一个工具:人们可以用它制定好的策略或糟糕的策略。doas 并不是唯一可以做到这一点的工具,它是一种替代方案。

适用最小权限原则,尽可能避免超级用户 root。成为 root 的用户可能会破坏某些内容、使其不合规或窃取他们不应访问的机密。

系统管理员使用 启动 root shell 是有意义的sudo -i,因为他们应该能够对主机执行任何操作。应用程序分析师或开发人员完全控制托管服务器则不太合理。他们可以获得受限的、权限较低的用户。然后使用 选项切换到这些非 root 用户sudo -u user

考虑一个名为thing的应用程序。为此应用程序(也称为thing)创建一个用户和组服务帐户。为其创建一个目录,由应用程序用户拥有。由于我们系统管理员有不以root身份登录的良好习惯,因此请使用sudo成为root并完成此操作。

sudo install --directory --owner=thing --group=thing /opt/thing

在对 sudoers 策略进行调整后,分析师可以成为用户并 sudo -u thing 在这棵树下做他们喜欢的事情。


请注意,大多数现代软件都是以离散档案的形式发布的。Debian deb、EL rpm、容器、其他软件包格式。对于 Java,openjdk 具有上述任何格式的版本。

你可以将你的资料打包,这样任何人都可以轻松使用它来配置虚拟机或容器。但这是另一个问题的主题。

答案2

使用 sudo 而不是成为 root 始终是一个好的做法。

请注意,移动文件时,它们会保留原始所有者和权限,但使用 sudo 复制的文件将归 root 所有。根据您的情况,您可能需要使用 chown/chmod 调整所有者和权限。

相关内容