我读到,为了防止用户更改自己的密码,必须输入:
passwd -n 10000 $用户
但是我如何防止 root 用户更改 $user 的密码呢?
背景:我正在尝试设置对某些目录的独占访问权限,并认为新用户比较合适。是吗?我选择不压缩 + 密码保护这些目录,因为它们大多数都超过 1TB。有什么提示吗?
编辑:阻止 root 执行此类操作的原因是,即使具有 root 访问权限的用户也不能访问我试图保护的某些独有目录。
答案1
这个问题的提出理由是值得怀疑的......
批评您想要创建新用户的解决方案——即使其他根用户无法更改新用户的密码,他们也不需要这样做,因为根用户可以读取任何文件或更改文件的文件权限——他们永远不需要“成为”该用户。”
如果您拥有数 TB 的数据并且想要阻止其他用户访问 - 请不要将这些数据放在其他用户可以访问的同一台机器上。
如果您的机器上有数 TB 的数据并且有多个用户 - 那么您为什么不让这些用户访问这些数据呢?
我们甚至还没有谈到为什么要有多个你不信任的 root 用户。授予多个 root 用户是一件好事,但是听起来你拥有所有用户的 root 访问权限 - 朋友很棒,让他们进来,但他们不需要 root。
即使使用 ACL,您也无法阻止其他 root 用户获取数据 - 您(作为 root)创建了 ACL,他们(作为 root)将修改它。
唯一真正可行的解决方案是各个间谍机构很久以前发明的空气隔离机器。
将您的“绝密”数据放在驱动器上,不要和朋友一起将其插入机器。或者,将驱动器安装到没有 root 用户群且没有网络访问权限的其他机器上。您可能可以允许这台机器(文件服务器)具有网络访问权限,因为您的朋友不太可能拥有 Spook Grade 黑客工具来访问这台机器。只给您自己访问权限,然后瞧 - 隔离数据。这种机器的创建成本非常低。CPU、NIC 就完成了。
如果您“有点想”信任他们,和/或,并且只从这台(root-user-clustered)机器访问这些数据,那么只有在单用户模式、离线并且您在控制台时才物理连接驱动器。
可能还有其他一些创造性的解决方案,但是如果涉及软件,就不可能将一个根用户与另一个根用户隔离。
ps:当提到 root 时,我使用该术语来暗示真正的 root 用户 - 而不是具有 sudo 等的用户。
答案2
最终,如果您授予某人对您的系统的根访问权限,则您就授予了他们系统上的所有内容,这就是为什么信任您授予根权限的人非常重要。
答案3
我想你可以在 /etc/shadow 上设置一个不可变的扩展文件系统属性。这将阻止对密码的所有更改,直到根用户撤消不可变位。命令是“chattr +i /etc/shadow”
如果您为专业系统管理员提供 root 访问权限,您应该假设如果您要求他们不要更改密码,他们也不会更改密码。最后,您可以随时切换到使用 Kerberos 5 或集中管理的某些东西。