在 Un*x 上,设置一个用户 ID 以供许多不同的人在执行操作时登录是一个好主意吗?
我经常在 Linux 或 BSD 系统上安装软件或其他东西。我已经开发软件 24 年了,所以我知道如何让机器做我想做的事情,但我从来没有负责维护一个真正关心安全性的多用户安装。所以我的观点感觉未经检验。
现在我在一家公司,那里有一台服务器,许多人用一个用户 ID 登录并执行操作。我正在上面安装一些软件。它实际上不是面向公众的服务器,只能通过 VPN 访问,但尽管如此,许多人还是使用它来对自定义软件进行测试,诸如此类。它是一台临时服务器。
我认为,至少使用单个用户会掩盖审计线索,这很糟糕。而且这很不雅观,因为人们在服务器上没有自己的空间。
但话说回来,用户 ID 越多,受到攻击的可能性就越大,从而允许攻击者获得访问权限。
?
答案1
使用单独的 UID。如果多个用户拥有相同的 UID,则无法分辨谁是谁。从 UID 到日志名的任何反向查找都变得不可靠。
满足您要求的一个标准解决方案是安装和使用sudo
。 sudo 允许您向您希望的任何用户或用户组授予以不同用户身份运行程序的能力。 该sudoers
文件在允许谁做什么方面提供了很大的灵活性。 使用执行的操作sudo
通常会被记录下来。
一些发行版锁定 root 并使用sudo
以允许用户执行需要以 root 身份完成的操作。
允许用户执行su
或使用-i
选项成为另一个用户是可能的,而且很常见。这在一定程度上减少了审计线索,但与流程会计相结合,您可以获得非常好的审计线索。
请记住,任何拥有 root 访问权限的人通常都可以绕过您的审计跟踪。除非您信任他们,否则不要授予他们 root 访问权限。
答案2
正如您所说,出于审计目的,这非常不理想。通过拥有多个用户 ID,您可以查看WHO是在做什么在什么时候时间。这并不是说它万无一失。没有什么可以真正阻止他们互相告知自己的凭证或其他用户窃取凭证。
如果您制作定制软件,我认为您最大的风险来自于有人想知道rm -rf
根目录中有什么内容,以及其他潜在的可怕的事情(但您已经测试过备份......正确的?)
答案3
我认为这完全取决于您的利益,安排账户和设置权限等需要时间,如果您仔细设置,您可以设置用户组,这样即使某些帐户被黑客入侵,也不会影响系统的其余部分,但这些都是安全的一部分,所以你应该专注于你的需求。
我认为对您来说最好的方式是创建 2 或 3 个组,每个组一个用户 ID,这样您至少可以管理这些组(这比为每个用户单独设置用户 ID 花费更少的时间和精力),并赋予您一些权限和审计能力。