似乎设置为“管理员”的用户不仅可以更改“标准”用户的密码,还可以更改其他管理员的密码。有没有办法让管理员(此系统上有多个)无法干扰其他管理员的帐户(即他们只能管理“低于”他们的用户)?
答案1
Ubuntu 管理员的重要属性是他们可以执行他们选择的任何操作,如根, 使用sudo
和波尔基特。这是必要的,这样他们才能拥有全面管理系统的权力。这是已经管理员如何更改其他用户的密码。
为了有效阻止这种情况,必须实施相当大的限制措施,这将导致管理员不再是真正的管理员。即使你费尽心思在系统中配置了大量例外情况(可能通过 AppArmor 或 SELinux)来阻止他们这样做,如果他们能够做到以下几点,他们还是可以很容易地重新获得这种权力:
- 以 root 身份运行某些命令,这些命令本身允许他们注入并运行任意命令。
- 编辑系统上的任意文件。
- 编辑或创建一个配置文件,控制谁可以以 root 身份运行命令以及他们可以运行哪些命令(例如
/etc/sudoers
、或 中的文件/etc/sudoers.d
),即使他们无权编辑全部root 拥有的文件。 - 编辑涉及以 root 身份自动运行命令的配置文件,例如
/etc/crontab
。或者,类似地,at
为 root 安排作业。 - 安装任意软件。他们可以制作一个软件包,在安装的配置步骤中以 root 身份自动执行上述任何操作。或者他们可以制作一个软件包,让他们在运行安装的软件时执行上述操作(例如,它可以安装设置用户标识由 root 拥有的可执行文件 (为打破所施加的限制而编写的)。
- 这些只是例子。这远不是一份详尽的清单。
我怀疑你真正想要的可能是下列之一:
创建受限用户一些额外的权力,但不是管理员的全部权力,并且不是以 root 身份运行任意命令或编辑大多数系统范围的配置文件的权力。
这将从以下简单的步骤开始ByteBOT 的答案--用户需求不是成为一名管理员,以便有效地实施限制。
这是否可行取决于你希望他们拥有的具体权力和限制。(如果你想让他们能够做一切除了重置管理员密码,请参见上文。)如果您想赋予他们的权力定义明确且不太广泛,那么这很可能是可行的。
为了阻止其他管理人员,或者可能是正式的人员应该按照你说的做,不要做出你认为是错误或有害的行为。如果情况如此,这其实不是一个技术问题尝试通过技术手段解决此类问题通常弊大于利。
其中一个原因是它创造了一个技术比赛解决(读作:永远无法有意义地解决)分歧,而这种分歧本应通过讨论、谈判、解释情况或重新定义/解除人员关系等方式来解决。可能(但愿)你并不真的想让团队成员之间的琐碎争吵和地盘内斗正式化。
创建一种自动化机制,提醒本系统的管理员通常不应该更改其他管理员的密码。
如果这就是你想要的,并且你明白这不会发生真的阻止想要重置任何密码的管理员这样做,那么我相信这是可行的。
如果您正在尝试解决问题 1 或问题 3,您可以考虑发布一个包含详细信息的新问题。
答案2
出于 muru 在上面的评论中所述的原因,无法限制管理员帐户的某些操作。即使您可以实现管理员不能在其自己的帐户内执行此操作,他/她仍然有权成为 root (sudo) 并且完全不受限制。
抱歉,但限制管理员权限的唯一方法是将其管理员转换为普通帐户......