使用Linux和/ home从数据节点安装,pipe理实验室的用户和组信息

我们的实验室由多台台式机和一个数据节点组成,全部运行Ubuntu Linux。 台式机从数据节点挂载/ home。 / home中的文件和用户使用存储在数据机器的/ etc / passwd,/ etc / group和/ etc / shadow中的UID和GID进行pipe理。 如果我想添加一个用户或一个组,我必须编辑数据机器的passwd / group / shadow文件,并将特定的行复制到所有桌面机器的passwd / group / shadow文件中。

有没有办法使Linux使用多个passwd / group / shadow文件? 我们希望桌面机器拥有自己的passwd / group / shadow,然后在数据机器中包含passwd / group / shadow作为自己的补充。

另外,有没有办法让用户sudo访问,但不允许他们修改密码/组/阴影,让他们访问文件和组? 我们希望他们执行pipe理任务(安装软件,设置networking/打印机等),但我们也想要严格控制谁可以访问特定的数据。

虽然我不知道如何使Linux合并多个passwd文件,但我想指出,您的设置是使用LDAP进行集中式用户pipe理的典型用例。 不幸的是,虽然configurationUbuntu客户端进行LDAPauthentication已变得相当容易,但是设置OpenLDAP服务器 有点烦人 , 我发现缺乏仓库中的pipe理软件 。

一个实用的build议:在内部,定义一系列UID在实验室中共享使用,并且为客户端编写一个小的启动脚本,用于将你的passwd / shadow / groups文件的一部分与服务器上的“中央用户数据库”在这种情况下,可以通过简单的文本文件来实现)。

关于你的问题的sudo部分:/ etc / sudoers可以保存单个sudoers可以使用提升权限运行哪些命令的信息。 但是,要让用户locking,同时仍然允许他们使用任何编辑器,将很难find防弹的方法。 引用了sudoers的manpage :

感叹号('!')可以用作别名和Cmnd前面的逻辑非操作符。 这允许排除某些值。 但请注意,使用! 结合内置的所有别名,以允许用户运行“几乎所有”命令很less按预期工作

如果您可以枚举用户可以运行哪些任务而无需添加“并使用文本编辑器来更改设置文件”,那么我看不到可靠的方法。

你可以看看NIS(或以前称为YP)。

或者你可以有一个中央系统,并且在你所有的系统之间做一个周期性的passwd / group / shadow文件。 这个过程将避免所有的系统打字和润饰,并保持这些文件的一致性,如果一些priv'd用户做一些事情给他们。

至于sudo的问题,我认为对这个特权用户的信任,validation,审计和教育,对于防止这里的问题有很大的帮助。 确保您的用户了解所承担的责任,并由pipe理层支持,以便在出现问题时采取相应措施。 问题是,几乎不可能避免泄露到某种types的编辑器或程序(分布式或生成的)