Linux - 设置多用户和多机器系统,任何人都可以从任何机器登录到他们的用户

Linux - 设置多用户和多机器系统,任何人都可以从任何机器登录到他们的用户

我有以下设置:多台计算机(所有计算机都安装了最新的 Ubuntu),用户比计算机多。我希望任何人都可以从任何计算机登录到他们的用户,并且他们拥有所有文件、二进制文件等。

另外,所有计算机都可以通过一台运行 ansible 的计算机进行控制。

我的问题是:我该如何做才能让“任何人都可以从任何计算机登录到他们的用户,并且他们拥有所有的文件、二进制文件等”。

答案1

任何人都可以从任何计算机登录到他们的用户,

第一步是让每个人的帐户都出现在每台计算机上。

理论上,您可以使用 Ansible 在任何地方创建相同的帐户,但更常见的是将它们放在中央数据库中,通常是 LDAP(使用 FreeIPA、MS Active Directory 或自行开发的设置);过去是 NIS,但现在已经过时了。Ubuntu 有两个 LDAP 客户端:SSSD(libnss_sss)和 nslcd 又名 nss-pam-ldapd(libnss_ldap)。

其次,由于这些账户是用于本地登录的,密码而不是 SSH 密钥——您需要某种中央身份验证(在 Linux 上,这与帐户数据库是分开的)。特别是对于部署 Ansible 的帐户,您真的不希望人们在每台机器上本地更改密码并忘记哪台机器有哪个密码,因此最好重新路由passwd以与中央服务器通信。

例如,当使用 LDAP 来管理帐户时,通常让同一个 LDAP 服务器也处理身份验证。但是,对于您的情况,使用 Kerberos 进行身份验证具有特定优势 - 它内置于 AD 和 FreeIPA,但也易于手动设置。SSSD 客户端将通过相同的 pam_sss 处理 LDAP 或 Kerberos;对于其他所有情况,请使用 pam_krb5。

他们拥有所有的文件、二进制文件等等。

设置 NFSv4 服务器并将每个人的主目录放在 NFS 上。(并确保网络和 NFS 服务器的速度都足够快以支持这一点。如果第一个服务器死机,则要有备用服务器,否则每个人的工作将停止。请进行备份。)

这可以通过 fstab 安装“所有用户主目录” NFS 共享来完成,但更常见的是使用自动文件系统可以根据需求挂载各个主目录的守护进程。

您肯定会希望实现 Kerberos 进行用户身份验证(例如通过 pam_krb5 或 pam_sss),因为这是从不受信任的客户端机器进行安全 NFS 访问的唯一方法(使用sec=krb5mount 选项)。

相关内容