在跨服务器共享主目录的同时管理用户

在跨服务器共享主目录的同时管理用户

我有两台共享主目录的 ubuntu 服务器。server1 上的 /home 目录被挂载为 server2 上的 /home 目录。当我尝试授予新用户访问这两台服务器的权限时,我遇到了问题。我在每台服务器上使用相同的用户名执行 adduser 命令。但是当我这样做时,UID 不匹配,因此当使用 server2 上的帐户访问主目录时,用户最终无权访问其主目录中的文件。

在服务器 1 上创建了用户及其主目录。(一切看起来都很好)

selah@server1:~$ tail -n 2 /etc/passwd
dfulgon:x:1083:1087:,,,:/home/dfulgon:/bin/bash
swartp:x:1085:1089:,,,:/home/swartp:/bin/bash

selah@server1:~$ ll -a /home/dfulgon | tail -n 3
-rw-rw----  1 dfulgon dfulgon   25 Jun  2 13:41 .my.cnf~
-rw-r--r--  1 dfulgon dfulgon  675 Jun  2 13:35 .profile
drwxrwxr-x  2 dfulgon dfulgon 4096 Jun  2 14:27 .ssh/

在服务器 2 上创建了同名的用户帐户,但使用了另一台服务器的主目录:(权限混乱,指向错误的用户)

selah@server2:~$ tail -n 2 /etc/passwd
bslf:x:1083:1087:,,,:/home/bslf:/bin/bash
dfulgon:x:1087:1091:,,,:/home/dfulgon:/bin/bash

selah@server2:~$ ll -a /home/dfulgon | tail -n 3
-rw-rw----  1 bslf bslf   25 Jun  2 13:41 .my.cnf~
-rw-r--r--  1 bslf bslf  675 Jun  2 13:35 .profile
drwxrwxr-x  2 bslf bslf 4096 Jun  2 14:27 .ssh/

有没有一个好的方法可以克服这个问题,同时又能保持共享主目录的便利性?

答案1

最简单的做法是在某些中央数据库中创建您的帐户。如今,几乎每个人都为此建立了某种形式的 ldap 数据库。但如果您想采用不安全的老式方法,您也可以考虑 NIS。(不要)。

另一个选择是使用配置管理工具来创建您的帐户,并保持 UID 同步。因此,您可以使用 puppet 创建您的帐户并定义您想要的特定 UID/GID。

您可以使用 NFS id 映射器来执行一些操作以在系统之间转换 id,但这可能会成为一场管理噩梦。

答案2

我们采用的解决方案:

检查两个 /etc/passwd 文件并选择下一个合适的 GID 和 UID。然后在用户创建过程中指定它们,如下所示。

addgroup -g $GID $username
adduser -g $GID -u $UID $username 

相关内容